home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / demo / wemdemo3.zip / ETC / NEWS < prev    next >
Text File  |  1994-09-21  |  171KB  |  4,352 lines

  1. Win-Emacs is a version of the popular GNU Emacs text editor that is
  2. designed to run under Microsoft Windows 3.1 on MS-DOS machines with a
  3. 80386 or better processor.  It is based on Lucid Emacs, a version of
  4. GNU Emacs with extensive windowing, font, and color support.
  5. In addition to the standard features provided by GNU Emacs, Win-Emacs
  6. provides the following:
  7.  
  8. -- Multiple top-level windows, each of which is independently controllable
  9.    just like any other window in Windows.
  10. -- Menu items for standard operations such as opening a file, choosing
  11.    a font, setting the text color, etc.  The menu is completely
  12.    configurable using E-Lisp commands.
  13. -- Multiple fonts and colors available in a single document; this is used
  14.    (e.g.) by the font-lock package, which provides dynamic syntax
  15.    highlighting for many different programming languages.  Fonts and
  16.    colors are completely configurable.  A dialog box is provided to
  17.    simplify changing the default text font.
  18. -- Full integration with the mouse.  Text can be selected and cut, copied,
  19.    and pasted; the insertion point can be set with the mouse; etc.
  20. -- Integration with the File Manager: files can be dragged from File
  21.    Manager and dropped into Win-Emacs, and a new window will automatically
  22.    be opened on the file.
  23. -- Full WYSIWYG printing support, including Print and Print Setup
  24.    dialog boxes.
  25. -- E-Lisp support for communication with the Internet (using WinSock).
  26. -- GNUS (Usenet newsreading package) and W3 (World Wide Web browser)
  27.    included.
  28. -- E-Lisp support for DDE (Dynamic Data Exchange).
  29. -- Ability to edit both text and binary files.  Binary files can be edited
  30.    either as regular files or in hex mode.
  31. -- Ability to invoke DOS filters using standard E-Lisp commands such as
  32.    `shell-command' and `shell-command-on-region'.
  33. -- Ability to invoke compilers using `M-x compile'.
  34. -- Ability to search through multiple files or compare two files, using
  35.    `M-x grep' or `M-x diff'.  32-bit ports of GNU grep and GNU diff
  36.    are provided.
  37. -- 32-bit port of GNU patch included.
  38.  
  39.  
  40. Win-Emacs is currently based on Lucid Emacs 19.6; future versions of
  41. Win-Emacs will be based on later versions of Lucid Emacs and will
  42. include scrollbars, a better display engine, improved dialog-box
  43. support, support for OLE, and numerous other features.
  44.  
  45. The Lucid Emacs "news" file follows.
  46.  
  47. -----------------------------------------------------------------------------
  48.  
  49. This is Lucid GNU Emacs.  It is based on an early version of Emacs version 19
  50. from the Free Software Foundation.
  51.  
  52. Why Another Version of Emacs?
  53. =============================
  54.  
  55. Lucid's latest product, Energize, is a C/C++ development environment.  Rather
  56. than invent (and force our users to learn) a new user-interface, we chose to
  57. build part of our environment on top of the world's best editor, GNU Emacs.
  58. (Though our product is commercial, the work we did on GNU Emacs is free
  59. software, and is useful without having to purchase our product.)
  60.  
  61. We needed a version of Emacs with mouse-sensitive regions, multiple fonts,
  62. the ability to mark sections of a buffer as read-only, the ability to detect
  63. which parts of a buffer has been modified, and many other features.
  64.  
  65. Why Not Epoch?
  66. ==============
  67.  
  68. For our purposes, the existing version of Epoch was not sufficient; it did
  69. not allow us to put arbitrary pixmaps/icons in buffers, `undo' did not
  70. restore changes to regions, regions did not overlap and merge their
  71. attributes in the way we needed, and several other things.
  72.  
  73. We could have devoted our time to making Epoch do what we needed (and, in
  74. fact, we spent some time doing that) but, since the FSF planned to include
  75. Epoch-like features in their version 19, we decided that our efforts would 
  76. be better spent improving Emacs19 instead of Epoch.  
  77.  
  78. Our original hope was that our changes to Emacs would be incorporated into
  79. the "official" v19.  However, scheduling conflicts arose, and we found that,
  80. given the amount of work still remaining to be done, we didn't have time to
  81. merge with the FSF's code.  Consequently, we have released our work as a
  82. forked branch of Emacs, instead of delaying any longer.
  83.  
  84. Work has begun on a merger of Epoch and Lucid Emacs.  It seems likely that 
  85. the next release of Epoch will be based on Lucid Emacs instead of GNU Emacs
  86. from the FSF.  At some point, Lucid Emacs and Epoch will probably be the 
  87. same thing.
  88.  
  89. No Warranty
  90. ===========
  91.  
  92. Lucid Emacs is distributed under exactly the same terms as GNU Emacs, and
  93. thus has no warranty of any kind.
  94.  
  95. However, if you have received this version of Emacs with Energize, then it is
  96. covered by your Energize support contract.  If you have received it through
  97. some other means, then you may buy a support contract for it from Lucid.
  98. Send mail to lucid-info@lucid.com for more information about Lucid Emacs or
  99. Energize.
  100.  
  101. What's Different?
  102. =================
  103.  
  104. Lucid Emacs *currently* requires an X Window System environment to run,
  105. though it will not be much work to make it run on dumb ttys again.  We plan
  106. to do this eventually.
  107.  
  108. We have not personally tried to compile this version of Emacs under anything
  109. but SunOS 4.1 on SparcStations, though others have successfully done so.  We
  110. are very eager to get feedback about portability problems from those who
  111. compile it on other systems.
  112.  
  113. We have reimplemented the basic input model in a more general way; instead of
  114. X input being a special-case of the normal ASCII input stream, Emacs has a
  115. concept of "input events", and ASCII characters are a subset of that.  The
  116. events that Emacs knows about are not X events, but are a generalization of
  117. them, so that Emacs can eventually be ported to different window systems.
  118.  
  119. We have reimplemented keymaps so that sequences of events can be stored into
  120. them instead of just ASCII codes; it is possible to, for example, bind 
  121. different commands to each of the chords Control-h, Control-H, Backspace,
  122. Control-Backspace, and Super-Shift-Backspace.  Key bindings, function key
  123. bindings, and mouse bindings live in the same keymaps.
  124.  
  125. Input and display of all ISO-8859-1 characters is supported.
  126.  
  127. You can have multiple X windows ("screens" in Emacs terminology).
  128.  
  129. Our Emacs has objects called "extents" and "faces", which are roughly
  130. analogous to Epoch's "buttons," "zones," and "styles."  An extent is a region
  131. of text (a start position and an end position) and a face is a collection of
  132. textual attributes like fonts and colors.  Every extent is displayed in some
  133. "face", so changing the properties of a face immediately updates the display 
  134. of all associated extents.  Faces can be screen-local: you can have a region
  135. of text which displays with completely different attributes when its buffer
  136. is viewed from a different X window.
  137.  
  138. The display attributes of faces may be specified either in lisp or through
  139. the X resource manager.
  140.  
  141. There may be some display glitches if all the fonts of a screen are not the
  142. same height in pixels.  Any of the used fonts may be variable-width, but tabs
  143. will not be displayed sensibly.  We hope to improve this soon.
  144.  
  145. Emacs use the MIT "Xt" toolkit instead of raw Xlib calls, which makes it be
  146. a more well-behaved X citizen (and also improves portability).  A result of
  147. this is that it is possible to include other Xt "Widgets" in the Emacs
  148. window.  Also, Emacs understands the standard Xt command-line arguments.
  149.  
  150. Emacs understands the X11 "Selection" mechanism; it's possible to define
  151. and customize selection converter functions and new selection types from 
  152. elisp, without having to recompile Emacs.
  153.  
  154. Emacs now supports the Zmacs/Lispm style of region highlighting, where the
  155. region between the point and mark is highlighted when in its "active" state.
  156.  
  157. Emacs has a menubar, whose contents are customizable from emacs-lisp.
  158. This menubar looks Motif-ish, but does not require Motif.  If you already
  159. own Motif, however, you can configure Emacs to use a *real* Motif menubar
  160. instead.  If you have OLIT ("OpenLook Intrinsics"), you can use an
  161. OpenWindows-like menubar.
  162.  
  163. Emacs can ask questions using popup dialog boxes.  Any command executed from
  164. a menu will ask yes/no questions with dialog boxes, while commands executed
  165. via the keyboard will use the minibuffer.
  166.  
  167. The initial load-path is computed at run-time, instead of at compile-time.
  168. This means that if you move the Emacs executable and associated directories
  169. to somewhere else, you don't have to recompile anything.
  170.  
  171. You can specify what the title of the Emacs windows and icons should be
  172. with the variables `screen-title-format' and `screen-icon-title-format',
  173. which have the same syntax as `mode-line-format'.
  174.  
  175. Emacs now supports floating-point numbers.
  176.  
  177. Emacs now knows about timers directly, instead of them being simulated by
  178. a subprocess.
  179.  
  180. Emacs understands truenames, and can be configured to notice when you are
  181. visiting two names of the same file.  See the variables find-file-use-truenames
  182. and find-file-compare-truenames.
  183.  
  184. If you're running on a sun SparcStation, you can specify sound files for
  185. Emacs to play instead of the default X beep.  See the documentation of the
  186. function load-sound-file and the variable sound-alist.
  187.  
  188. Random changes to the emacs-lisp library: (some of this was not written by
  189. us, but is included because it's free software and we think it's good stuff)
  190.  
  191.   - there is a new optimizing byte-compiler
  192.   - there is a new abbrev-based mail-alias mechanism
  193.   - the -*- line can contain local-variable settings
  194.   - there is a new TAGS package
  195.   - there is a new VI-emulation mode (evi)
  196.   - there is a new implementation of Dired
  197.   - there is a new implementation of Isearch
  198.  
  199. There are many more specifics in the "Miscellaneous Changes" section, below.
  200.  
  201. The online Emacs Manual is relatively up-to-date, but the Emacs-Lisp Manual
  202. is not.
  203.  
  204. Here are some more specifics:
  205.  
  206. The Input Model
  207. ===============
  208.  
  209. The fundamental unit of input is an "event" instead of a character.  An
  210. event is a new data type that contains several pieces of information.
  211. There are several kinds of event, and corresponding accessor and utility
  212. functions.  We tried to abstract them so that they would apply equally
  213. well to a number of window systems.
  214.  
  215.  key_press_event    
  216.     event_channel    A token representing which keyboard generated it.
  217.             For this kind of event, this is a screen object.
  218.             (This is for eventual support of multiple displays.)
  219.     timestamp        When it happened
  220.     key            What keysym this is; an integer or a symbol.
  221.             If this is an integer, it will be in the printing
  222.             ASCII range: >32 and <127.
  223.     modifiers        Bucky-bits on that key: control, meta, etc.
  224.             For most keys, Shift is not a bit; that is implicit
  225.             in the keyboard layout.
  226.  button_press_event
  227.  button_release_event
  228.     event_channel    A token representing which mouse generated it.
  229.             For this kind of event, this is a screen object.
  230.     timestamp        When it happened
  231.     button        What button went down or up.
  232.     modifiers        Bucky-bits on that button: shift, control, meta, etc.
  233.     x, y        Where it was at the button-state-change (in pixels).
  234.  
  235.  pointer_motion_event
  236.     event_channel    A token representing which mouse generated it.
  237.             For this kind of event, this is a screen object.
  238.     timestamp        When it happened
  239.     x, y        Where it was after it moved (in pixels).
  240.  
  241.  process_event
  242.     timestamp        When it happened
  243.     process        the emacs "process" object in question
  244.  
  245.  timeout_event
  246.     timestamp        Now (really, when the timeout was signalled)
  247.     function        The elisp function to call for this timeout.  It is
  248.                 called with one argument, the event.
  249.     object        Some lisp object associated with this timeout, to
  250.                 make it easier to tell them apart.
  251.  
  252.  eval_event
  253.     timestamp        When it happened.
  254.     function        An elisp function to call with this event object.
  255.     object        Anything.
  256.             This kind of event is used internally; sometimes the
  257.             window system interface would like to inform Emacs of
  258.             some user action (such as focusing on another screen)
  259.             but needs that to happen synchronously with the other
  260.             user input, like keypresses.
  261.  
  262.  menu_event
  263.     timestamp        When it happened.
  264.     function        An elisp function to call with this event object.
  265.     object        Anything.
  266.             This is similar to an eval_event, except that it is
  267.             generated by selections in the menubar.  It is a
  268.             "command" event, like key and mouse presses (and 
  269.             unlike mouse motion, process output, and enter and
  270.             leave window hooks.)  In many ways, eval_events are
  271.             not the same as key- or menu-events.
  272.  
  273.  magic_event
  274.             No user-serviceable parts within.  This is for things
  275.             like KeymapNotify and ExposeRegion events and so on
  276.             that Emacs itself doesn't care about, but which it
  277.             must do something with for proper interaction with
  278.             the window system.
  279.  
  280.             Magic_events are handled somewhat asynchronously, just
  281.             like subprocess filters.  However, occasionally a 
  282.             magic_event needs to be handled synchronously; in that
  283.             case, the asynchronous handling of the magic_event will
  284.             push an eval_event back onto the queue, which will be 
  285.             handled synchronously later.  This is why eval_events
  286.             exist.
  287.  
  288. The function `next-event' blocks and returns one of the above-described 
  289. event objects.  The function `dispatch-event' takes an event  and processes
  290. it in the appropriate way.
  291.  
  292. For a process-event, dispatch-event calls the process's handler; for a
  293. mouse-motion event, the mouse-motion-handler hook is called, and so on.
  294. For magic-events, dispatch-event does window-system-dependent things,
  295. including calling some non-window-system-dependent hooks: map-screen-hook,
  296. unmap-screen-hook, mouse-enter-screen-hook, and mouse-leave-screen-hook.
  297.  
  298. The function `next-command-event' calls `next-event' until it gets a key 
  299. or button from the user (that is, not a process, motion, timeout, or 
  300. magic event).  If it gets an event that is not a key or button, it calls
  301. `dispatch-event' on it immediately and reads another one.  The
  302. next-command-event function could be implemented in elisp, though it isn't.
  303.  
  304. Read-char calls next-command-event; if it doesn't get an event that can be
  305. converted to an ASCII character, it signals an error.  Otherwise it returns
  306. an integer.
  307.  
  308. The variable `last-command-char' always contains an integer, or nil (if the
  309. last read event has no ASCII equivalent, as when it is a mouse-click or a
  310. non-ASCII character chord.)
  311.  
  312. The new variable `last-command-event' holds an event object, that could be
  313. a non-ASCII character, a button click, a menu selection, etc.
  314.  
  315. The variable `unread-command-char' no longer exists, and has been replaced
  316. by `unread-command-event'.  With the new event model, it is incorrect for
  317. code to do (setq unread-command-char (read-char)), because all user-input
  318. can't be represented as ASCII characters.  *** This is an incompatible 
  319. change.  Code which sets `unread-command-char' must be updated to use the
  320. combination of `next-command-event' and `unread-command-event' instead.
  321.  
  322. The functions `this-command-keys' and `recent-keys' return a vector of
  323. event objects, instead of a string of ASCII characters.  *** This also
  324. is an incompatible change.
  325.  
  326. Almost nothing happens at interrupt level; the SIGIO handler only looks at
  327. the X event queue for KeyPress events which map to ^G, and sets `quit-flag'
  328. when appropriate.  All redisplay happens in the main thread of the process.
  329.  
  330. We envision the dumb-tty handler functions doing function-key handling at
  331. the lowest level.  So the terminal-specific code would set up some data
  332. structure that would cause the key sequences that some ttys generate for
  333. function keys to be converted to 'f1 and so on before next-event saw them.
  334. We haven't implemented dumb-tty handling yet, but we will soon.
  335.  
  336.  
  337. Keymaps
  338. =======
  339.  
  340. Instead of keymaps being alists or obarrays, they are a new primary data
  341. type.  The only user access to the contents of a keymap is through the
  342. existing keymap-manipulation functions, and a new function, map-keymap.
  343. *** This means that existing code that manipulates keymaps may need to 
  344. be changed.
  345.  
  346. One of our goals with the new input and keymap code was to make more
  347. character combinations available for binding, besides just ASCII and
  348. function keys.  We want to be able bind different commands to Control-a 
  349. and Control-Shift-a; we also want it to be possible for the keys Control-h
  350. and Backspace (and Control-M and Return, and Control-I and Tab, etc) to
  351. be distinct.
  352.  
  353. One of the most common complaints that new Emacs users have is that backspace
  354. is help.  The answer is to play around with the keyboard-translate-table, or
  355. be lucky enough to have a system administrator who has done this for you
  356. already; but if it were possible to bind backspace and C-h to different
  357. things, then (under a window manager at least) both backspace and delete
  358. would delete a character, and ^H would be help.  There's no need to deal 
  359. with xmodmap, kbd-translate-table, etc.
  360.  
  361. Here are some more examples: suppose you want to bind one function to Tab, 
  362. and another to Control-Tab.  This can't be done if Tab and Control-I are the
  363. same thing.  What about control keys that have no ASCII equivalent, like
  364. Control-< ?  One might want that to be bound to set-mark-at-point-min.  We
  365. want M-C-Backspace to be kill-backward-sexp.  But we want M-Backspace to be
  366. kill-backward-word.  Again, this can't be done if Backspace and C-h are
  367. indistinguishable.
  368.  
  369. The user represents keys as a string of ASCII characters (when possible and
  370. convenient), or as a vector of event objects, or as a vector of "key 
  371. description lists", that looks like (control a), or (control meta delete) 
  372. or (shift f1).  The order of the modifier-names is not significant, so
  373. (meta control x) and (control meta x) are the same.
  374.  
  375. Define-key knows how to take any of the above representations and store them
  376. into a keymap.  When Emacs wants to return a key sequence (this-command-keys,
  377. recent-keys, keyboard-macros, and read-key-sequence, for example) it returns
  378. a vector of event objects.  Keyboard macros can also be represented as ASCII
  379. strings or as vectors of key description lists.  
  380.  
  381. *** This is an incompatible change: code which calls this-command-keys,
  382. recent-keys, read-key-sequence, or manipulates keyboard-macros probably
  383. needs to be changed so that it no longer assumes that the returned value
  384. is a string.
  385.  
  386. Control-Shift-a is specified as (control A), not (control shift a), since A
  387. is a two-case character.  But for keys that don't have an upper case
  388. version, like F1, Backspace, and Escape, you use the (shift backspace) syntax.
  389.  
  390. See the docstring for our version of define-key, reproduced below in the
  391. `Changed Functions' section.  Note that when the KEYS argument is a string,
  392. it has the same semantics as the v18 define-key.
  393.  
  394.  
  395. Xt Integration
  396. ==============
  397.  
  398. The heart of the event loop is implemented in terms of the XtNextEvent,
  399. and uses Xt's concept of timeouts and file-descriptor callbacks,
  400. eliminating a large amount of system-dependent code (Xt does it for you.)
  401.  
  402. If Emacs is compiled with support for X, we plan to have it use the Xt
  403. event loop even when Emacs is not running on an X display (the Xt event
  404. loop supports this.)  This will make it possible to run Emacs on a dumb
  405. tty, and later connect it to one or more X servers.  We hope also to make
  406. it possible to later connect an existing Emacs process to additional ttys.
  407. (Our intent at this point is not to have an Emacs that is being used by
  408. multiple people at the same time: it is to make it possible for someone to
  409. go home, log in on a dialup line, and connect to the same Emacs process
  410. that is running under X in their office without having to recreate their
  411. buffer state and so on.)
  412.  
  413. If Emacs is not compiled with support for X, then it will instead use
  414. more general code, something like what v18 does; but this way of doing
  415. things is a lot more modular.
  416.  
  417. (Linking Emacs with Xt seems to only add about 300k to the executable size,
  418. compared with an Emacs linked with Xlib only.)
  419.  
  420.  
  421. X Selections
  422. ============
  423.  
  424. We have reimplemented X Selection handling to be more general than before.
  425. Almost all of it is implemented in emacs-lisp now, so it's possible to 
  426. define new selection data types without having to recompile Emacs.
  427.  
  428. variable selection-converter-alist:
  429. An alist associating selection-types (such as STRING and TIMESTAMP) with
  430. functions.  These functions will be called with three args: the name of the
  431. selection (typically PRIMARY, SECONDARY, or CLIPBOARD); a desired type to
  432. which the selection should be converted; and the local selection value
  433. (whatever had been passed to `x-own-selection').  These functions should
  434. return the value to send to the X server (typically a string).  A return
  435. value of nil means that the conversion could not be done.  A return value
  436. that is the symbol NULL means that a side-effect was executed, and there
  437. is no meaningful return value.
  438.  
  439. variable x-lost-selection-hooks:
  440. A function or functions to be called after the X server has notified us
  441. that Emacs has lost the selection.  The function(s) will be called with one
  442. argument, a symbol naming the selection (typically PRIMARY, SECONDARY, or
  443. CLIPBOARD.)
  444.  
  445. variable x-sent-selection-hooks:
  446. A function or functions to be called after Emacs has responded to some
  447. other client's request for the value of a selection that we own.  The
  448. function(s) will be called with four arguments:
  449.   - the name of the selection (typically PRIMARY, SECONDARY, or CLIPBOARD);
  450.   - the name of the selection-type that we were requested to convert the
  451.     selection into before sending (for example, STRING or LENGTH);
  452.   - and whether we successfully transmitted the selection.
  453. We might have failed (and declined the request) for any number of reasons,
  454. including being asked for a selection that we no longer own, or being asked
  455. to convert into a type that we don't know about or that is inappropriate.
  456. This hook doesn't let you change the behavior of Emacs's selection replies,
  457. it merely informs you that they have happened.
  458.  
  459. subr x-own-selection-internal:
  460. Assert an X selection of the given TYPE with the given VALUE.
  461. TYPE is a symbol, typically PRIMARY, SECONDARY, or CLIPBOARD.
  462. VALUE is typically a string, or a cons of two markers, but may be
  463. anything that the functions on selection-converter-alist know about.
  464.  
  465. subr x-get-selection-internal:
  466. Return text selected from some X window.
  467. SELECTION is a symbol, typically PRIMARY, SECONDARY, or CLIPBOARD.
  468. TYPE is the type of data desired, typically STRING.
  469.  
  470. If this process is already the selection owner, then our local copy will
  471. be returned without a round-trip to the X server.  If we are not the owner,
  472. then this will block until all of the data has arrived from the server.
  473. Process and timeout events will be handled while we are waiting for the 
  474. selection data to arrive; ^G will interrupt the transfer.
  475.  
  476. subr x-disown-selection-internal:
  477. If we own the named selection, then disown it (make there be no selection).
  478.  
  479.  
  480. Given the above functions, the lisp side of the selection code looks like this:
  481.  
  482. (defun x-get-selection ()
  483.   "Return text selected from some X window."
  484.   (x-get-selection-internal 'PRIMARY 'STRING))
  485.  
  486. ...
  487. (setq selection-converter-alist
  488.       '((STRING . xselect-convert-to-string)
  489.     (LENGTH . xselect-convert-to-length)
  490.         ... lots of others, like TARGETS, DELETE, FILE_NAME, LINE_NUMBER...
  491.     ))
  492.  
  493. (defun xselect-convert-to-string (selection type value)
  494.   (cond ((stringp value)
  495.      value)
  496.     ((and (consp value)
  497.           (markerp (car value))
  498.           (markerp (cdr value)))
  499.      (or (eq (marker-buffer (car value)) (marker-buffer (cdr value)))
  500.          (signal 'error
  501.              (list "markers must be in the same buffer"
  502.                (car value) (cdr value))))
  503.      (save-excursion
  504.        (set-buffer (or (marker-buffer (car value))
  505.                (error "selection is in a killed buffer")))
  506.        (buffer-substring (car value) (cdr value))))
  507.     (t nil)))
  508.  
  509. (defun xselect-convert-to-length (selection type value)
  510.   (let ((value
  511.      (cond ((stringp value)
  512.         (length value))
  513.            ((and (consp value)
  514.              (markerp (car value))
  515.              (markerp (cdr value)))
  516.         (or (eq(marker-buffer (car value)) (marker-buffer (cdr value)))
  517.             (signal 'error
  518.                 (list "markers must be in the same buffer"
  519.                   (car value) (cdr value))))
  520.         (abs (- (car value) (cdr value)))))))
  521.     (if value
  522.     ;; force it to be in 32-bit format.  If we just returned a small int,
  523.         ;; the C side of the selection code would use a 16-bit representation
  524.     ;; for it, which is wrong in this case.  Returning a cons of two
  525.     ;; 16 bit ints causes a 32-bit int to be sent to the server instead.
  526.     (cons (ash value -16) (logand value 65535))
  527.       nil)))
  528.  
  529.  
  530. The functions on the selection-converter-alist are called from the
  531. "magic-event" handler, which is called from Fdispatch_event; this means that
  532. selection handling happens exactly the same as process-callbacks, instead
  533. of happening at interrupt level (which caused problems.)
  534.  
  535. There are also functions for reading and writing the cut-buffers, for
  536. emacs19/emacs18 compatibility.
  537.  
  538. We used all-upper-case symbols like 'PRIMARY and 'STRING so that there is
  539. a 1:1 mapping between symbols and X Atoms.  This is a little tasteless,
  540. but we think it's the closest-to-right thing.
  541.  
  542.  
  543. Region Highlighting
  544. ===================
  545.  
  546. If the variable `zmacs-regions' is true, then the region between point and
  547. mark will be highlighted when "active".  Those commands which push a mark
  548. (such as C-SPC, and ^X^X) make the region become "active" and thus
  549. highlighted.  Most commands (all non-motion commands, basically) cause it to
  550. become non-highlighted (non-"active").  Commands that operate on the region
  551. (such as ^W, ^X^L, etc) only work if the region is in the highlighted state.
  552.  
  553. zmacs-activate-region-hook and zmacs-deactivate-region-hook are run at the
  554. appropriate times; under X, zmacs-activate-region-hook makes the X selection
  555. be the region between point and mark, thus doing two things at once: making
  556. the region and the X selection be the same; and making the region highlight
  557. in the same way as the X selection.
  558.  
  559. mark-marker: subr
  560. Return this buffer's mark, as a marker object.
  561. If `zmacs-regions' is true, then this returns nil unless the region is
  562. currently in the active (highlighted) state.  With an argument of t, this
  563. returns the mark (if there is one) regardless of the active-region state.
  564. You should *generally* not use the mark unless the region is active, if
  565. the user has expressed a preference for the active-region model.
  566. Watch out!  Moving this marker changes the mark position.
  567. If you set the marker not to point anywhere, the buffer will have no mark.
  568.  
  569. In this way, the primary selection is a fairly transitory entity; but
  570. when something is copied to the kill ring, it is made the Clipboard
  571. selection.  It is also stored into CUT_BUFFER0, for compatibility with
  572. X applications that don't understand selections (like Emacs18).
  573.  
  574. *** Compatibility note: if you have code which uses (mark) or (mark-marker),
  575. then you need to either: change those calls to (mark t) or (mark-marker t);
  576. or simply bind `zmacs-regions' to nil around the call to mark or mark-marker.
  577. This is probably the best solution, since it will work in Emacs18 as well.
  578.  
  579.  
  580. Menubars and Dialog Boxes
  581. =========================
  582.  
  583. Here is an example of a menubar definition:
  584.  
  585. (defvar default-menubar
  586.   '(("File"    ["New Screen"        x-new-screen        t]
  587.         ["Open File..."        find-file        t]
  588.         ["Save Buffer"        save-buffer        t]
  589.         ["Save Buffer As..."    write-file        t]
  590.         ["Revert Buffer"    revert-buffer        t]
  591.         "-----"
  592.         ["Print Buffer"        lpr-buffer        t]
  593.         "-----"
  594.         ["Delete Screen"    delete-screen        t]
  595.         ["Kill Buffer..."    kill-buffer        t]
  596.         ["Exit Emacs"        save-buffers-kill-emacs    t]
  597.         )
  598.     ("Edit"    ["Undo"            advertised-undo        t]
  599.         ["Cut"            kill-primary-selection    t]
  600.         ["Copy"            copy-primary-selection    t]
  601.         ["Paste"        yank-clipboard-selection t]
  602.         ["Clear"        delete-primary-selection t]
  603.         )
  604.     ...))
  605.  
  606. The first element of each menu item is the string to print on the menu.
  607.  
  608. The second element is the callback function; if it is a symbol, it is
  609. invoked with `call-interactively.'  If it is a list, it is invoked with
  610. `eval'.  
  611.  
  612. If the second element is a symbol, then the menu also displays the key that
  613. is bound to that command (if any).
  614.  
  615. The third element of the menu items determines whether the item is selectable.
  616. A hook is run just before a menu is exposed, which can be used to change this.
  617. For example, there is a hook that makes the "undo" menu item be selectable
  618. only in the cases when `advertised-undo' would not signal an error.
  619.  
  620. Menus may have other menus nested within them; they will cascade.
  621.  
  622. There are utility functions for adding items to menus, deleting items,
  623. disabling them, etc.
  624.  
  625. The function `popup-menu' takes a menu description and pops it up.  
  626.  
  627. The function `popup-dialog-box' takes a dialog-box description and pops 
  628. it up.  Dialog box descriptions look a lot like menu descriptions.
  629. (*** note: we aren't completely finished implementing this yet.)
  630.  
  631. The menubar, menu, and dialog-box code is implemented as a library, 
  632. with an interface which hides the toolkit that implements it.  
  633.  
  634.  
  635. Isearch Changes
  636. ===============
  637.  
  638. Isearch has been reimplemented in a different way, adding some new features,
  639. and causing a few incompatible changes.
  640.  
  641.  -  the old isearch-*-char variables are no longer supported.  In the old
  642.     system, one could make ^A mean "repeat the search" by doing something
  643.     like (setq search-repeat-char ?C-a).  In the new system, this is 
  644.     accomplished with 
  645.  
  646.        (define-key isearch-mode-map "\C-a" 'isearch-repeat-forward)
  647.  
  648.  -  The advantage of using the normal keymap mechanism for this is that you
  649.     can bind more than one key to an isearch command: for example, both C-a
  650.     and C-s could do the same thing inside isearch mode.  You can also bind
  651.     multi-key sequences inside of isearch mode, and bind non-ASCII keys.
  652.     For example, to use the F1 key to terminate a search:
  653.  
  654.        (define-key isearch-mode-map 'f1 'isearch-exit)
  655.  
  656.     or to make ``C-c C-c'' terminate a search:
  657.  
  658.        (define-key isearch-mode-map "\C-c\C-c" 'isearch-exit)
  659.  
  660.  -  If isearch is behaving case-insensitively (the default) and you type an
  661.     upper case character, then the search will become case-sensitive.  This
  662.     can be disabled by setting `search-caps-disable-folding' to nil.
  663.  
  664.  -  There is a history ring of the strings previously searched for; typing
  665.     M-p or M-n while searching will cycle through this ring.  Typing M-TAB
  666.     will do completion across the set of items in the history ring.
  667.  
  668.  -  The ESC key is no longer used to terminate an incremental search.  The
  669.     RET key should be used instead.  This change is necessary for it to be
  670.     possible to bind "meta" characters to isearch commands.  (This change
  671.     will be in FSF's v19 as well.)
  672.  
  673.  
  674. Startup Code Changes
  675. ====================
  676.  
  677. The initial X screen is mapped before the user's .emacs file is executed.
  678. Without this, there is no way for the user to see any error messages
  679. generated by their .emacs file, any windows created by the .emacs file
  680. don't show up, and the copyleft notice isn't shown.
  681.  
  682. The default values for load-path, exec-path, lock-directory, and
  683. Info-directory-list are not (necessarily) built into Emacs, but are
  684. computed at startup time.  
  685.  
  686. First, Emacs looks at the directory in which its executable file resides:
  687.  
  688.   o  If that directory contains subdirectories named "lisp" and "etc", then
  689.      those directories are used as the lisp library and exec directory.
  690.  
  691.   o  If the parent of the directory in which the emacs executable is located
  692.      contains "lisp" and "etc" subdirectories, then those are used.
  693.  
  694.   o  If the emacs executable that was run is a symbolic link, then the link
  695.      is chased, and the resultant directory is checked as above.
  696.  
  697. (Actually, it doesn't just look for "lisp/", it looks for "lisp/prim/",
  698. which reduces the chances of a false positive.)
  699.  
  700. Finally, if the lisp directory contains subdirectories, they are added to
  701. the default load-path as well.  Subdirectories whose names begin with a dot
  702. or a hyphen are not added to the load-path.
  703.  
  704. These heuristics fail if the Emacs binary was copied from the main Emacs
  705. tree to some other directory, and links for the lisp directory were not put
  706. in.  This isn't much of a restriction: either make there be subdirectories
  707. (or symbolic links) of the directory of the emacs executable, or make the
  708. "installed" emacs executable be a symbolic link to an executable in a more
  709. appropriate directory structure.  For example, this setup works:
  710.  
  711.     /usr/local/lemacs/lemacs*        ; The executable.
  712.     /usr/local/lemacs/lisp/        ; The associated directories.
  713.     /usr/local/lemacs/etc/        ; Any of the files in this list
  714.     /usr/local/lemacs/lock/        ; could be symbolic links as well.
  715.     /usr/local/lemacs/info/
  716.  
  717. As does this:
  718.  
  719.     /usr/local/bin/lemacs -> ../lemacs/src/lemacs-19.4    ; A link...
  720.     /usr/local/lemacs/src/lemacs-19.4*            ; The executable,
  721.     /usr/local/lemacs/lisp/                ; and the rest of
  722.     /usr/local/lemacs/etc/                ; the the source
  723.     /usr/local/lemacs/lock/                ; tree.
  724.     /usr/local/lemacs/info/
  725.  
  726. This configuration might be used for a multi-architecture installation; assume
  727. that $LOCAL refers to a directory which contains only files specific to a 
  728. particular architecture (i.e., executables) and $SHARED refers to those files 
  729. which are not machine specific (i.e., lisp code and documentation.)
  730.  
  731.     $LOCAL/bin/lemacs@ -> $LOCAL/lemacs-19.4/lemacs*
  732.     $LOCAL/lemacs-19.4/lisp@ -> $SHARED/lemacs-19.4/lisp/
  733.     $LOCAL/lemacs-19.4/etc@  -> $SHARED/lemacs-19.4/etc/
  734.     $LOCAL/lemacs-19.4/info@ -> $SHARED/lemacs-19.4/info/
  735.  
  736. The following would also work, but the above is probably more attractive:
  737.  
  738.     $LOCAL/bin/lemacs*
  739.     $LOCAL/bin/lisp@ -> $SHARED/lemacs-19.4/lisp/
  740.     $LOCAL/bin/etc@  -> $SHARED/lemacs-19.4/etc/
  741.     $LOCAL/bin/info@ -> $SHARED/lemacs-19.4/info/
  742.  
  743. If Emacs can't find the requisite directories, it writes a message like this
  744. (or some appropriate subset of it) to stderr:
  745.  
  746.   WARNING:
  747.   couldn't find an obvious default for load-path, exec-directory, and
  748.   lock-directory, and there were no defaults specified in paths.h when
  749.   Emacs was built.  Perhaps some directories don't exist, or the Emacs
  750.   executable, /cadillac-th/jwz/somewhere/lemacs is in a strange place?
  751.  
  752.   Without both exec-directory and load-path, Emacs will be very broken.
  753.   Consider making a symbolic link from /cadillac-th/jwz/somewhere/etc
  754.   to wherever the appropriate Emacs etc/ directory is, and from
  755.   /cadillac-th/jwz/somewhere/lisp/ to wherever the appropriate Emacs
  756.   lisp library is.
  757.  
  758.   Without lock-directory set, file locking won't work.  Consider
  759.   creating /cadillac-th/jwz/somewhere/lock as a directory or symbolic
  760.   link for use as the lock directory.
  761.  
  762.  
  763. X Resources
  764. ===========
  765.  
  766. The Emacs resources are generally per-screen.  Each Emacs screen can have its
  767. own name, or the same name as another, depending on the name passed to the
  768. x-create-screen function.  
  769.  
  770. You can specify resources for all screens with the syntax
  771.  
  772.     Emacs*parameter: value
  773. or
  774.     Emacs*EmacsScreen.parameter: value
  775.  
  776. You can specify resources for a particular screen with the syntax
  777.  
  778.     Emacs*SCREEN-NAME.parameter: value
  779.  
  780.  
  781. To make the default size of all emacs be 80 columns by 55 lines, do this:
  782.  
  783.     Emacs*EmacsScreen.geometry: 80x55
  784.  
  785. As a special case, this geometry specification also works:
  786.  
  787.     Emacs.geometry: 80x55
  788.  
  789. since that is the syntax used with most other applications (since most other
  790. applications, unlike emacs, have only one top-level window.)  In general,
  791. however, the top-level shell doesn't have any interesting resources on it,
  792. and you should set the resources on the screens instead.
  793.  
  794. To set the geometry of a particular screen named, "foo", do this:
  795.  
  796.     Emacs*foo.geometry: 80x55
  797.  
  798. In particular, do --NOT-- use this syntax:
  799.  
  800.     Emacs*geometry: 80x55
  801.  
  802. One should never use "*geometry" with any X application.  It does not say
  803. "make the geometry of emacs be 80 columns by 55 lines."  It really says,
  804. "make emacs and all subwindows thereof be 80x35 in whatever units they care
  805. to measure in."  In particular, that is both telling the emacs text pane
  806. to be 80x55 in characters, and telling the menubar pane to be 80x55 pixels,
  807. which is surely not what you want.
  808.  
  809. The "-geometry" command-line argument sets the geometry only of the initial
  810. screen created by emacs.
  811.  
  812.  
  813. Emacs screens accept the following resources:
  814.  
  815.   iconic (class Iconic): boolean
  816.  
  817.     Whether the initial window should appear in the iconified state.
  818.  
  819.   internalBorderWidth (class InternalBorderWidth): int
  820.  
  821.     How many blank pixels to leave between the text and the edge of the
  822.     window.
  823.  
  824.   interline (class Interline): int
  825.  
  826.     How many pixels to leave between each line.
  827.  
  828.   cursorColor (class CursorColor): color
  829.  
  830.     The color of the text cursor.
  831.  
  832.   textPointer (class Cursor): cursor-name
  833.  
  834.     The cursor to use when the mouse is over text.  This resource is
  835.     used to initialize the variable `x-pointer-shape'.
  836.  
  837.   spacePointer (class Cursor): cursor-name
  838.  
  839.     The cursor to use when the mouse is over a blank space in a buffer
  840.     (that is, after the end of a line or after the end-of-file).  This
  841.     resource is used to initialize the variable `x-nontext-pointer-shape'.
  842.  
  843.   modePointer (class Cursor): cursor-name
  844.  
  845.     The cursor to use when the mouse is over a modeline.  This resource
  846.     is used to initialize the variable `x-mode-pointer-shape'.
  847.  
  848.   gcPointer (class Cursor): cursor-name
  849.  
  850.     The cursor to display when a garbage-collection is in progress.  This
  851.     resource is used to initialize the variable `x-gc-pointer-shape'.
  852.  
  853.   pointerColor (class Foreground): color-name
  854.  
  855.     The foreground and background colors of the mouse cursors.  
  856.     These resources are used to initialize the variables 
  857.     `x-pointer-foreground-color' and `x-pointer-background-color'.
  858.  
  859.  
  860. The attributes of faces are also per-screen.  They may be specified as
  861.  
  862.     Emacs*FACE_NAME.parameter: value
  863. or
  864.     Emacs.SCREEN_NAME.FACE_NAME.parameter: value
  865.  
  866. Faces accept the following resources:
  867.  
  868.   attributeFont (class AttributeFont): font-name
  869.  
  870.     The font of this face.
  871.  
  872.   attributeForeground (class AttributeForeground): color-name
  873.   attributeBackground (class AttributeBackground): color-name
  874.  
  875.     The foreground and background colors of this face.
  876.  
  877.   attributeBackgroundPixmap (class attributeBackgroundPixmap): file-name
  878.  
  879.     The name of an XBM file, to use as a background stipple.
  880.  
  881.   attributeUnderline (class AttributeUnderline): boolean
  882.  
  883.     Whether text in this face should be underlined.
  884.  
  885. All text is displayed in some face, defaulting to the face named "default".
  886. So to set the font of normal text, use "Emacs*default.attributeFont".
  887. To set it in the screen named "foo", use "Emacs*foo*default.attributeFont".
  888.  
  889. These are the names of the predefined faces:
  890.  
  891.     default            Everything inherits from this.
  892.  
  893.     highlight        This is used to highlight certain extents 
  894.                 when the mouse passes over them.
  895.  
  896.     bold            If this is not specified in the resource
  897.                 database, Emacs tries to find a "bold" 
  898.                 version of the font of the "default" face.
  899.  
  900.     italic            ditto.
  901.  
  902.     bold-italic        ditto.
  903.  
  904.     primary-selection    This is the face that mouse-selections are
  905.                 displayed in.
  906.  
  907.     isearch            This is the face that the matched text being
  908.                 searched for is displayed in.
  909.  
  910.     info-node        This is the face of info menu items.  If
  911.                 unspecified, it is copied from "bold-italic".
  912.  
  913.     info-xref        This is the face of info cross-references.
  914.                 If unspecified, it is copied from "bold".
  915.  
  916. Other packages might define their own faces; to see a list of all faces, use
  917. any of the interactive face-manipulation commands such as `set-face-font') and
  918. type `?' when you are prompted for the name of a face.
  919.  
  920. If the bold, italic, and bold-italic faces are not specified in the resource
  921. database, then emacs attempts to derive them from the font of the default face.
  922. It can only succeed at this if you have specified the default font using the
  923. XLFD (X Logical Font Description) format, which looks like
  924.  
  925.     *-courier-medium-r-*-*-*-120-*-*-*-*-*-*
  926.  
  927. if you use any of the other, less strict font name formats, some of which
  928. look like
  929.         lucidasanstypewriter-12
  930. and        fixed
  931. and        9x13
  932.  
  933. then emacs won't be able to guess the names of the bold and italic versions.
  934. All X fonts can be referred to via XLFD-style names, so you should use those
  935. forms.  See the man pages for X(1), xlsfonts(1), and xfontsel(1).
  936.  
  937.  
  938. Known Problems / TODO List
  939. ==========================
  940.  
  941. Horizontally-split windows don't work.  Selective-display doesn't work.
  942. Display tables don't work.  Horizontal scrolling doesn't work.  We plan to
  943. do some extensive work on redisplay soon, which will likely fix all of this.
  944.  
  945. Most of the `screen-parameters' don't work.  I'm not convinced that the
  946. screen-parameters/modify-screen-parameters functions are the best interface
  947. anyway.
  948.  
  949. The Motif-like menubar that xlwmenu.c defines should use the same resources
  950. that real Motif menubars use (as much as possible, anyway.)
  951.  
  952. Faces should be able to have cursors associated with them.
  953.  
  954. The `mouse-motion-hook' should be called whenever a buffer scrolls or the
  955. sizes of windows change, so that it can correctly frob the mouse-cursor based
  956. on the text that the mouse is now over.
  957.  
  958. Everybody wants scrollbars.  They should be implemented in lwlib.a, so that
  959. they are toolkit-independent (that is, when the user has Motif, emacs should
  960. use Motif scrollbars; likewise for OLIT.)  There should be one scrollbar per
  961. emacs window, *not* one scrollbar per emacs screen.  The easiest way to do 
  962. this would be to make emacs windows be X windows which are inferiors of the
  963. X window corresponding to the emacs screen.  There would then be an intermediate
  964. horizontally-stacking RowColumn widget between the screen and the emacs window
  965. which was used to group the scrollbar and the emacs window together.
  966.  
  967. We need to implement a non-Xt event_stream, based on select() and/or timer
  968. signals, so that emacs can be *compiled* without support for X.  (Note that
  969. this is different than emacs *running* without X.)
  970.  
  971. It should be possible to open emacs screens on multiple X displays and 
  972. multiple dumb-ttys simultaneously.
  973.  
  974. It should be possible to have a process-filter-function that doesn't get 
  975. called with a string; rather, the output is simply put in a buffer.  This
  976. is like a process having both a buffer and a filter-function.  This would
  977. be a good thing because it would mean that a string need not be consed every
  978. time a process generated output, and yet you could be signalled that output
  979. had arrived.
  980.  
  981.  
  982. Miscellaneous Changes
  983. =====================
  984.  
  985. What follows is a semi-automatically generated list of the new functions and
  986. variables included with Lucid Emacs, and those functions and variables whose
  987. semantics have changed since Emacs 18.57.
  988.  
  989. New Functions:
  990. ==============
  991.  
  992. abbreviate-file-name: (filename &optional hack-homedir)
  993. Return a version of FILENAME shortened using directory-abbrev-alist.
  994. See C-h v directory-abbrev-alist RET for more information.
  995. If optional argument HACK-HOMEDIR is non-nil, then This also substitutes
  996. "~" for the user's home directory."
  997.  
  998. ------------------------------
  999. abs: (arg)
  1000. Return the absolute value of ARG.
  1001.  
  1002. ------------------------------
  1003. acos: (arg)
  1004. Return the inverse cosine of ARG.
  1005.  
  1006. ------------------------------
  1007. asin: (arg)
  1008. Return the inverse sine of ARG.
  1009.  
  1010. ------------------------------
  1011. atan: (arg)
  1012. Return the inverse tangent of ARG.
  1013.  
  1014. ------------------------------
  1015. add-hook: (hook-var function &optional at-end)
  1016.  
  1017. Add a function to a hook.
  1018. First argument HOOK-VAR (a symbol) is the name of a hook, second
  1019.  argument FUNCTION is the function to add.
  1020. Third (optional) argument AT-END means to add the function at the end
  1021.  of the hook list instead of the beginning.  If the function is already
  1022.  present, this has no effect.
  1023. Returns nil if FUNCTION was already present in HOOK-VAR, else new
  1024.  value of HOOK-VAR.
  1025.  
  1026. ------------------------------
  1027. add-menu-item: (menu-path item-name function enabled-p &optional before)
  1028.  
  1029. Add a menu item to some menu, creating the menu first if necessary.
  1030. If the named item exists already, it is changed.
  1031. MENU-PATH identifies the menu under which the new menu item should be inserted.
  1032.  It is a list of strings; for example, ("File") names the top-level "File"
  1033.  menu.  ("File" "Foo") names a hypothetical submenu of "File".
  1034. ITEM-NAME is the string naming the menu item to be added.
  1035. FUNCTION is the command to invoke when this menu item is selected.
  1036.  If it is a symbol, then it is invoked with `call-interactively', in the same
  1037.  way that functions bound to keys are invoked.  If it is a list, then the 
  1038.  list is simply evaluated.
  1039. ENABLED-P controls whether the item is selectable or not.
  1040. BEFORE, if provided, is the name of a menu item before which this item should
  1041.  be added, if this item is not on the menu already.  If the item is already
  1042.  present, it will not be moved.
  1043.  
  1044. ------------------------------
  1045. add-menu: (menu-path menu-name menu-items &optional before)
  1046.  
  1047. Add a menu to the menubar or one of its submenus.
  1048. If the named menu exists already, it is changed.
  1049. MENU-PATH identifies the menu under which the new menu should be inserted.
  1050.  It is a list of strings; for example, ("File") names the top-level "File"
  1051.  menu.  ("File" "Foo") names a hypothetical submenu of "File".
  1052.  If MENU-PATH is nil, then the menu will be added to the menubar itself.
  1053. MENU-NAME is the string naming the menu to be added.
  1054. MENU-ITEMS is a list of menu item descriptions.
  1055.  Each menu item should be a vector of three elements:
  1056.    - a string, the name of the menu item;
  1057.    - a symbol naming a command, or a form to evaluate;
  1058.    - and t or nil, whether this item is selectable.
  1059. BEFORE, if provided, is the name of a menu before which this menu should
  1060.  be added, if this menu is not on its parent already.  If the menu is already
  1061.  present, it will not be moved.
  1062.  
  1063. ------------------------------
  1064. add-timeout: (secs function object &optional resignal)
  1065.  
  1066. SECS is a number of seconds, expressed as an integer or a float.
  1067. FUNCTION will be called after that many seconds have elapsed, with one
  1068. argument, the given OBJECT.  If the optional RESIGNAL argument is provided,
  1069. then after this timeout expires, `add-timeout' will automatically be called
  1070. again with RESIGNAL as the first argument.
  1071.  
  1072. This function returns an object which is the `id' of this particular timeout.
  1073. You can pass that object to `disable-timeout' to turn off the timeout before
  1074. it has been signalled.
  1075.  
  1076. The number of seconds may be expressed as a floating-point number, in which
  1077. case some fractional part of a second will be used.  Caveat: the usable
  1078. timeout granularity will vary from system to system.
  1079.  
  1080. Adding a timeout causes a timeout event to be returned by `next-event', and
  1081. the function will be invoked by `dispatch-event,' so if emacs is in a tight
  1082. loop, the function will not be invoked until the next call to sit-for or
  1083. until the return to top-level (the same is true of process filters.)
  1084.  
  1085. WARNING: if you are thinking of calling add-timeout from inside of a
  1086. callback function as a way of resignalling a timeout, think again.  There
  1087. is a race condition.  That's why the RESIGNAL argument exists.
  1088.  
  1089. ------------------------------
  1090. allocate-event: ()
  1091.  
  1092. Returns an empty event structure.
  1093. WARNING, the event object returned may be a reused one; see the function
  1094. `deallocate-event'.
  1095.  
  1096. ------------------------------
  1097. backtrace-frame: (nframes)
  1098.  
  1099. Return the function and arguments N frames up from current execution point.
  1100. If that frame has not evaluated the arguments yet (or is a special form),
  1101. the value is (nil FUNCTION ARG-FORMS...).
  1102. If that frame has evaluated its arguments and called its function already,
  1103. the value is (t FUNCTION ARG-VALUES...).
  1104. A &rest arg is represented as the tail of the list ARG-VALUES.
  1105. FUNCTION is whatever was supplied as car of evaluated list,
  1106. or a lambda expression for macro calls.
  1107. If N is more than the number of frames, the value is nil.
  1108.  
  1109. ------------------------------
  1110. buffer-list: (&optional screen)
  1111.  
  1112. Return a list of all existing live buffers.
  1113. The order is specific to the selected screen; if the optional SCREEN
  1114. argument is provided, the ordering for that screen is returned instead.
  1115. If the SCREEN argument is t, then the global (non-screen) ordering is
  1116. returned instead.
  1117.  
  1118. ------------------------------
  1119. buffer-modified-tick: (&optional buffer)
  1120.  
  1121. Return BUFFERs tick counter, incremented for each change in text.
  1122. Each buffer has a tick counter which is incremented each time the text in
  1123. that buffer is changed.  It wraps around occasionally.
  1124. No argument or nil as argument means use current buffer as BUFFER.
  1125.  
  1126. ------------------------------
  1127. button-press-event-p: (obj)
  1128. True if the argument is a mouse-button-press event object.
  1129.  
  1130. ------------------------------
  1131. button-release-event-p: (obj)
  1132. True if the argument is a mouse-button-release event object.
  1133.  
  1134. ------------------------------
  1135. byte-compile-and-load-file: (filename)
  1136.  
  1137. Compile a file of Lisp code named FILENAME into a file of byte code,
  1138. and then load it.  The output files name is made by appending "c" to 
  1139. the end of FILENAME.
  1140.  
  1141. ------------------------------
  1142. byte-compile-buffer: (&optional buffer)
  1143. Byte-compile and evaluate contents of BUFFER (default: the current buffer).
  1144.  
  1145. ------------------------------
  1146. byte-compiler-options: (&rest args)
  1147.  
  1148. Set some compilation-parameters for this file.  This will affect only the
  1149. file in which it appears; this does nothing when evaluated, and when loaded
  1150. from a .el file.
  1151.  
  1152. Each argument to this macro must be a list of a key and a value.
  1153.  
  1154.   Keys:          Values:        Corresponding variable:
  1155.  
  1156.   verbose      t, nil        byte-compile-verbose
  1157.   optimize      t, nil, source, byte    byte-compile-optimize
  1158.   warnings      list of warnings    byte-compile-warnings
  1159.               Legal elements: (callargs redefine free-vars unresolved)
  1160.   file-format      emacs18, emacs19    byte-compile-emacs18-compatibility
  1161.   new-bytecodes      t, nil        byte-compile-generate-emacs19-bytecodes
  1162.  
  1163. For example, this might appear at the top of a source file:
  1164.  
  1165.     (byte-compiler-options
  1166.       (optimize t)
  1167.       (warnings (- free-vars))        ; Dont warn about free variables
  1168.       (file-format emacs19))
  1169.  
  1170. ------------------------------
  1171. case-table-p: (table)
  1172. Return t iff ARG is a case table.
  1173. See set-case-table for more information on these data structures.
  1174.  
  1175. ------------------------------
  1176. ceiling: (num)
  1177. Return the smallest integer no less than ARG.  (Round toward +inf.)
  1178.  
  1179. ------------------------------
  1180. character-to-event: (ch &optional event)
  1181.  
  1182. Converts a numeric ASCII value to an event structure, replete with
  1183. bucky bits.  The character is the first argument, and the event to fill
  1184. in is the second.  This function contains knowledge about what the codes
  1185. mean -- for example, the number 9 is converted to the character Tab,
  1186. not the distinct character Control-I.
  1187.  
  1188. Beware that character-to-event and event-to-character are not strictly 
  1189. inverse functions, since events contain much more information than the 
  1190. ASCII character set can encode.
  1191.  
  1192. ------------------------------
  1193. clrhash: (table)
  1194. Flush TABLE.
  1195.  
  1196. ------------------------------
  1197. compiled-function-p: (obj)
  1198. T if OBJECT is a compiled function object (as returned by make-byte-code.)
  1199.  
  1200. ------------------------------
  1201. conx: ()
  1202.  
  1203. Generate some random sentences in the *conx* buffer.
  1204. Output will be continuously generated until you type ^G.
  1205. Before running this function, you must snarf some text into the CONX 
  1206. database with the M-x conx-buffer or M-x conx-region commands.
  1207.  
  1208. ------------------------------
  1209. copy-event: (event1 &optional event2)
  1210.  
  1211. Make a copy of the given event object.  If a second argument is given,
  1212. the first event is copied into the second and the second is returned.
  1213. If the second argument is not supplied (or is nil) then a new event will
  1214. be made as with `allocate-event.'  See also the function `deallocate-event'.
  1215.  
  1216. ------------------------------
  1217. copy-face: (old-face new-name &optional screen)
  1218.  
  1219. Defines and returns a new face which is a copy of an existing one,
  1220. or makes an already-existing face be exactly like another.
  1221.  
  1222. ------------------------------
  1223. copy-tree: (arg)
  1224.  
  1225. Return a copy of a list or vector, and substructures.
  1226. The argument is copied, and any lists or vectors contained within it
  1227. are copied recursively.  Circularities and shared substructures are
  1228. not preserved.  Strings are not copied.
  1229.  
  1230. ------------------------------
  1231. cos: (arg)
  1232. Return the cosine of ARG.
  1233.  
  1234. ------------------------------
  1235. cosh: (arg)
  1236. Return the hyperbolic cosine of ARG.
  1237.  
  1238. ------------------------------
  1239. current-case-table: ()
  1240. Return the case table of the current buffer.
  1241.  
  1242. ------------------------------
  1243. current-time-seconds: ()
  1244.  
  1245. Returns the current time as the number of seconds since Jan. 1, 1970, 00:00,
  1246. Greenwich Mean Time.  Since Emacs cant represent integers that large, this
  1247. is returned as a cons of two 16-bit numbers.  You can pass this value as an
  1248. argument to current-time-string to get that time as a string.
  1249.  
  1250. ------------------------------
  1251. deallocate-event: (event)
  1252.  
  1253. Allow the given event structure to be reused.  You MUST NOT use this 
  1254. event object after calling this function with it.  You will lose.
  1255. It is not necessary to call this function, as event objects are garbage-
  1256. collected like all other objects; however, it may be more efficient to
  1257. explicitly deallocate events when you are sure that that is safe.
  1258.  
  1259. ------------------------------
  1260. deiconify-screen: (screen)
  1261. Open (de-iconify) the iconified screen SCREEN.
  1262.  
  1263. ------------------------------
  1264. delete-extent: (extent)
  1265.  
  1266. Remove EXTENT from its buffer; this does not modify the buffer's text,
  1267. only its display properties.
  1268.  
  1269. ------------------------------
  1270. delete-menu-item: (path)
  1271.  
  1272. Remove the named menu item from the menu hierarchy.
  1273. PATH is a list of strings which identify the position of the menu item in 
  1274. the menu hierarchy.  ("File" "Save") means the menu item called "Save"
  1275. under the toplevel "File" menu.  ("Menu" "Foo" "Item") means the 
  1276. menu item called "Item" under the "Foo" submenu of "Menu".
  1277.  
  1278. ------------------------------
  1279. delete-screen: (&optional screen)
  1280.  
  1281. Delete SCREEN, permanently eliminating it from use.
  1282. Default is current screen.
  1283.  
  1284. ------------------------------
  1285. delete-window: (&optional window)
  1286.  
  1287. Remove WINDOW from the display.  Default is selected window.
  1288. If window is the only one on the screen, the screen is destroyed.
  1289.  
  1290. ------------------------------
  1291. disable-menu-item: (path)
  1292.  
  1293. Make the named menu item be unselectable.
  1294. PATH is a list of strings which identify the position of the menu item in 
  1295. the menu hierarchy.  ("File" "Save") means the menu item called "Save"
  1296. under the toplevel "File" menu.  ("Menu" "Foo" "Item") means the 
  1297. menu item called "Item" under the "Foo" submenu of "Menu".
  1298.  
  1299. ------------------------------
  1300. disable-timeout: (id)
  1301.  
  1302. Given a timeout id number as returned by add-timeout, this function
  1303. will cause that timeout to not be signalled if it hasnt been already.
  1304.  
  1305. ------------------------------
  1306. dispatch-event: (event)
  1307. Given an event object returned by next-event, execute it.
  1308.  
  1309. ------------------------------
  1310. elisp-compile-defun: (&optional arg)
  1311.  
  1312. Compile and evaluate the current top-level form.
  1313. Print the result in the minibuffer.
  1314. With argument, insert value in current buffer after the form.
  1315.  
  1316. ------------------------------
  1317. enable-menu-item: (path)
  1318.  
  1319. Make the named menu item be selectable.
  1320. PATH is a list of strings which identify the position of the menu item in 
  1321. the menu hierarchy.  ("File" "Save") means the menu item called "Save"
  1322. under the toplevel "File" menu.  ("Menu" "Foo" "Item") means the 
  1323. menu item called "Item" under the "Foo" submenu of "Menu".
  1324.  
  1325. ------------------------------
  1326. enqueue-eval-event: (function object)
  1327.  
  1328. Add an eval event to the back of the queue.
  1329. It will be the next event read after all pending events.
  1330.  
  1331. ------------------------------
  1332. eval-and-compile: (&rest body)
  1333. Like progn, but evaluates the body at compile-time as well as at load-time.
  1334.  
  1335. ------------------------------
  1336. eval-event-p: (obj)
  1337. True if the argument is an eval or menu event object.
  1338.  
  1339. ------------------------------
  1340. eval-when-compile: ()
  1341.  
  1342. Like progn, but evaluates the body at compile-time.  The result of the
  1343. body appears to the compiler as a quoted constant.
  1344.  
  1345. ------------------------------
  1346. event-button: (event)
  1347.  
  1348. Returns the button-number of the given mouse-button-press event.
  1349.  
  1350. ------------------------------
  1351. event-function: (event)
  1352. Returns the callback function of the given timeout, menu, or eval event.
  1353.  
  1354. ------------------------------
  1355. event-glyph: (event)
  1356.  
  1357. If the given mouse-motion, button-press, or button-release event happened
  1358. on top of a glyph, this returns it; else nil.
  1359.  
  1360. ------------------------------
  1361. event-key: (event)
  1362.  
  1363. Returns the KeySym of the given key-press event.  This will be the
  1364. ASCII code of a printing character, or a symbol.
  1365.  
  1366. ------------------------------
  1367. event-modifier-bits: (event)
  1368.  
  1369. Returns a number representing the modifier keys which were down 
  1370. when the given mouse or keyboard event was produced.  See also the function
  1371. event-modifiers.
  1372.  
  1373. ------------------------------
  1374. event-modifiers: (event)
  1375.  
  1376. Returns a list of symbols, the names of the modifier keys which 
  1377. were down when the given mouse or keyboard event was produced.
  1378. See also the function event-modifier-bits.
  1379.  
  1380. ------------------------------
  1381. event-object: (event)
  1382.  
  1383. Returns the callback function argument of the given timeout, menu, or
  1384. eval event.
  1385.  
  1386. ------------------------------
  1387. event-point: (event)
  1388.  
  1389. Returns the character position of the given mouse-motion, button-press,
  1390. or button-release event.  If the event did not occur over a window, or did
  1391. not occur over text, then this returns nil.  Otherwise, it returns an index
  1392. into the buffer visible in the events window.
  1393.  
  1394. ------------------------------
  1395. event-process: (event)
  1396. Returns the process of the given proces-output event.
  1397.  
  1398. ------------------------------
  1399. event-timestamp: (event)
  1400. Returns the timestamp of the given event object.
  1401.  
  1402. ------------------------------
  1403. event-to-character: (event &optional lenient)
  1404.  
  1405. Returns the closest ASCII approximation to the given event object.
  1406. If the event isn't a keypress, this returns nil.
  1407. If the second argument is non-nil, then this is lenient in its 
  1408. translation; it will ignore modifier keys other than control and meta,
  1409. and will ignore the shift modifier on those characters which have no 
  1410. shifted ASCII equivalent (Control-Shift-A for example, will be mapped to 
  1411. the same ASCII code as Control-A.)  If the second arg is nil, then nil 
  1412. will be returned for events which have no direct ASCII equivalent.
  1413.  
  1414. ------------------------------
  1415. event-window: (event)
  1416.  
  1417. Given a mouse motion, button press, or button release event, compute
  1418. and return the window on which that event occurred.  This may be nil if
  1419. the event did not occur in an Emacs window (in the border or modeline.)
  1420.  
  1421. ------------------------------
  1422. event-x: (event)
  1423. Returns the X position of the given mouse-motion, button-press, or
  1424. button-release event in characters.
  1425.  
  1426. ------------------------------
  1427. event-x-pixel: (event)
  1428. Returns the X position of the given mouse-motion, button-press, or
  1429. button-release event in pixels.
  1430.  
  1431. ------------------------------
  1432. event-y: (event)
  1433. Returns the Y position of the given mouse-motion, button-press, or
  1434. button-release event in characters.
  1435.  
  1436. ------------------------------
  1437. event-y-pixel: (event)
  1438. Returns the Y position of the given mouse-motion, button-press, or
  1439. button-release event in pixels.
  1440.  
  1441. ------------------------------
  1442. eventp: (obj)
  1443. True if the argument is an event object.
  1444.  
  1445. ------------------------------
  1446. exp: (arg)
  1447. Return the exponential base e of ARG.
  1448.  
  1449. ------------------------------
  1450. expt: (x y)
  1451. Return the exponential x ** y.
  1452.  
  1453. ------------------------------
  1454. extent-at: (pos &optional buffer flag)
  1455.  
  1456. Find "smallest" extent at POS in BUFFER having FLAG set.  BUFFER
  1457. defaults to the current buffer, FLAG defaults to nil, meaning that any
  1458. extent will do. Possible values for FLAG are nil, menu, highlight,
  1459. invisible, and write-protected. Returns nil if there is no matching
  1460. extent at POS.
  1461.  
  1462. ------------------------------
  1463. extent-attributes: (extent_obj &optional raw_p)
  1464.  
  1465. Return a list of attributes of EXTENT.
  1466. This list may contain any or none of the following symbols:
  1467.  
  1468.     highlight        highlight when the mouse moves over it
  1469.     write-protected    text within this extent will be unmodifiable
  1470.     invisible        don't display the text in this region
  1471.     begin-glyph        there is a begin-glyph
  1472.     end-glyph        there is an end-glyph
  1473.     detached        the text around the extent has been deleted
  1474.  
  1475. ------------------------------
  1476. extent-buffer: (extent_obj)
  1477. Return buffer of EXTENT.
  1478.  
  1479. ------------------------------
  1480. extent-data: (extent)
  1481.  
  1482. Return the user data associated with the given extent.
  1483. Set this using the `set-extent-data' function.
  1484.  
  1485. ------------------------------
  1486. extent-end-position: (extent)
  1487. Return first position after EXTENT.
  1488.  
  1489. ------------------------------
  1490. extent-face: (extent)
  1491. Returns the name of the face in which EXTENT is displayed.
  1492.  
  1493. ------------------------------
  1494. extent-length: (extent)
  1495. Return length of EXTENT in characters.
  1496.  
  1497. ------------------------------
  1498. extent-priority: (extent)
  1499. Returns the display priority of EXTENT; see `set-extent-priority'.
  1500.  
  1501. ------------------------------
  1502. extent-start-position: (extent)
  1503. Return start position of EXTENT.
  1504.  
  1505. ------------------------------
  1506. extentp: (extent)
  1507. T if OBJECT is an extent..
  1508.  
  1509. ------------------------------
  1510. face-background: (face &optional screen)
  1511. Returns the background color name of the given face, or nil if unspecified.
  1512.  
  1513. ------------------------------
  1514. face-background-pixmap: (face &optional screen)
  1515. Returns the background pixmap name of the given face, or nil if unspecified.
  1516.  
  1517. ------------------------------
  1518. face-differs-from-default-p: (face &optional screen)
  1519.  
  1520. True if the given face will display differently from the default face.
  1521. A face is considered to be ``the same'' as the default face if it is 
  1522. actually specified in the same way (equivalent fonts, etc) or if it is 
  1523. fully unspecified, and thus will inherit the attributes of any face it 
  1524. is displayed on top of.
  1525.  
  1526. ------------------------------
  1527. face-equal: (face1 face2 &optional screen)
  1528. True if the given faces will display in the the same way.
  1529.  
  1530. ------------------------------
  1531. face-font: (face &optional screen)
  1532. Returns the font name of the given face, or nil if it is unspecified.
  1533.  
  1534. ------------------------------
  1535. face-foreground: (face &optional screen)
  1536. Returns the foreground color name of the given face, or nil if unspecified.
  1537.  
  1538. ------------------------------
  1539. face-id: (face)
  1540. Returns the internal ID number of the given face.
  1541.  
  1542. ------------------------------
  1543. face-underline-p: (face)
  1544. Returns whether the given face is underlined.
  1545.  
  1546. ------------------------------
  1547. fceiling: (arg)
  1548. Return the smallest integer no less than ARG, as a float.
  1549. (Round toward +inf.)
  1550.  
  1551. ------------------------------
  1552. ffloor: (arg)
  1553. Return the largest integer no greater than ARG, as a float.
  1554. (Round toward +inf.)
  1555.  
  1556. ------------------------------
  1557. fround: (arg)
  1558. Return the nearest integer to ARG, as a float.
  1559.  
  1560. ------------------------------
  1561. ftruncate: (arg)
  1562. Truncate a floating point number to an integral float value.
  1563. Rounds the value toward zero.
  1564.  
  1565. ------------------------------
  1566. file-executable-p: (filename)
  1567. Return t if FILENAME can be executed by you.
  1568. For directories this means you can change to that directory.
  1569.  
  1570. ------------------------------
  1571. find-face: (name &optional screen)
  1572.  
  1573. Retrieve the face of the given name.
  1574. If NAME is a symbol and SCREEN is provided, the face is looked up on
  1575. that screen; otherwise, the selected screen is used.
  1576. If there is no such face, returns nil.
  1577. If SCREEN is the symbol t, then the global, non-screen face is returned.
  1578. If NAME is already a face, it is simply returned.
  1579.  
  1580. ------------------------------
  1581. find-file-new-screen: (filename)
  1582.  
  1583. Just like find-file, but creates a new screen for it first.
  1584.  
  1585. ------------------------------
  1586. float: (arg)
  1587. Return the floating point number equal to ARG.
  1588.  
  1589. ------------------------------
  1590. floor: (arg)
  1591. Return the largest integer no greater than ARG.  (Round towards -inf.)
  1592.  
  1593. ------------------------------
  1594. force-highlight-extent: (extent &optional flag)
  1595.  
  1596. Highlight any EXTENT if FLAG is not nil, else unhighlight it.
  1597. This is the same as `highlight-extent', except that it will work even
  1598. on extents without the 'highlight property.
  1599.  
  1600. ------------------------------
  1601. get-face: (name &optional screen)
  1602.  
  1603. Retrieve the face of the given name.
  1604. If NAME is a symbol and SCREEN is provided, the face is looked up on
  1605. that screen; otherwise, the selected screen is used.
  1606. If there is no such face, an error is signalled.  See also find-face.
  1607. If SCREEN is the symbol t, then the global, non-screen face is returned.
  1608. If NAME is already a face, it is simply returned.
  1609.  
  1610. ------------------------------
  1611. get-screen-for-buffer: (buffer &optional ignored)
  1612.  
  1613. Select and return a screen in which to display BUFFER.
  1614. Normally, the buffer will simply be displayed in the current screen.
  1615. But if the symbol naming the major-mode of the buffer has a 'screen-name
  1616. property (which should be a symbol), then the buffer will be displayed in
  1617. a screen of that name.  If there is no screen of that name, then one is
  1618. created.  
  1619.  
  1620. If the major-mode doesn't have a 'screen-name property, then the screen
  1621. named by `get-screen-for-buffer-default-screen-name' will be used.  If
  1622. that is nil (the default) then the currently selected screen will used.
  1623.  
  1624. If the screen-name symbol has an 'instance-limit property (an integer)
  1625. then each time a buffer of the mode in question is displayed, a new screen
  1626. with that name will be created, until there are `instance-limit' of them.
  1627. If instance-limit is 0, then a new screen will be created each time.
  1628.  
  1629. If a buffer is already displayed in a screen, then `instance-limit' is 
  1630. ignored, and that screen is used.
  1631.  
  1632. If the screen-name symbol has a 'screen-defaults property, then that is
  1633. prepended to the `screen-default-alist' when creating a screen for the
  1634. first time.
  1635.  
  1636. This function may be used as the value of `pre-display-buffer-hook', to 
  1637. cause the display-buffer function and its callers to exhibit the above
  1638. behavior.
  1639.  
  1640. ------------------------------
  1641. gethash: (obj table)
  1642. Find hashed value for OBJ in TABLE.
  1643.  
  1644. ------------------------------
  1645. hashtable-fullness: (table)
  1646. Returns number of entries in TABLE.
  1647.  
  1648. ------------------------------
  1649. highlight-extent: (extent &optional flag)
  1650.  
  1651. If EXTENT is `highlightable' (has the 'highlight property) then highlight
  1652. it (by using merging it with 'highlight face.)  If FLAG is nil, then
  1653. unhighlight it instead.
  1654.  
  1655. ------------------------------
  1656. iconify-screen: (screen)
  1657. Make the screen SCREEN into an icon, if the window manager supports icons.
  1658.  
  1659. ------------------------------
  1660. invert-face: (face &optional screen)
  1661.  
  1662. Swap the foreground and background colors of the given face.
  1663. If the face doesnt specify both foreground and background, then
  1664. its foreground and background are set to the background and
  1665. foreground of the default face.
  1666.  
  1667. ------------------------------
  1668. key-press-event-p: (obj)
  1669. True if the argument is a key-press event object.
  1670.  
  1671. ------------------------------
  1672. keymap-parent: (keymap)
  1673.  
  1674. Returns the parent keymap of the given keymap, or nil.
  1675. The parent of a keymap is searched for keybindings when a key sequence
  1676. isn't bound in this one.  The (current-global-map) is the default parent
  1677. of all keymaps.
  1678.  
  1679. ------------------------------
  1680. list-faces: ()
  1681. Returns a list of the names of all of the defined faces.
  1682.  
  1683. ------------------------------
  1684. load-average: ()
  1685.  
  1686. Return list of 1 minute, 5 minute and 15 minute load averages.
  1687. Each of the three load averages is multiplied by 100,
  1688. then converted to integer.
  1689.  
  1690. This won't work unless the Emacs executable is setgid kmem
  1691. (assuming that /dev/kmem is in the group kmem.)
  1692.  
  1693. ------------------------------
  1694. load-default-sounds: ()
  1695.  
  1696. Load and install some sound files as beep-types.
  1697. This only works if youre on display 0 of a Sun SparcStation or SGI machine.
  1698.  
  1699. ------------------------------
  1700. load-sound-file: (filename sound-name &optional volume)
  1701.  
  1702. Read in an audio-file and add it to the sound-alist.
  1703.  
  1704. You can only play sound files if you are running on display 0 of the console
  1705. of a Sun SparcStation or an SGI machine.  The sound file must be in the
  1706. Sun/NeXT U-LAW format.
  1707.  
  1708. ------------------------------
  1709. locate-library: (library &optional nosuffix)
  1710.  
  1711. Show the full path name of Emacs library LIBRARY.
  1712. This command searches the directories in load-path like  M-x load-library
  1713. to find the file that  M-x load-library RET LIBRARY RET  would load.
  1714. Optional 2nd arg NOSUFFIX non-nil means dont add suffixes .elc or .el
  1715. to the specified name LIBRARY (a la calling load instead of load-library).
  1716.  
  1717. ------------------------------
  1718. log: (arg)
  1719. Return the natural logarithm of ARG.
  1720.  
  1721. ------------------------------
  1722. log10: (arg)
  1723. Return the logarithm base 10 of ARG.
  1724.  
  1725. ------------------------------
  1726. make-directory: (dir)
  1727. Create a directory.  One argument, a file name string.
  1728.  
  1729. ------------------------------
  1730. make-extent: (from to &optional buffer)
  1731.  
  1732. Make extent for range [FROM, TO) in BUFFER -- BUFFER defaults to 
  1733. current buffer.  Insertions at point TO will be outside of the extent;
  1734. insertions at FROM will be inside the extent (and the extent will grow.)
  1735.  
  1736. ------------------------------
  1737. make-face: (name)
  1738.  
  1739. Defines and returns a new FACE on all screens.  
  1740. You can modify the font, color, etc of this face with the set-face- functions.
  1741. If the face already exists, it is unmodified.
  1742.  
  1743. ------------------------------
  1744. make-face-bold: (face &optional screen)
  1745.  
  1746. Make the font of the given face be bold, if possible.  
  1747. Returns nil on failure.
  1748.  
  1749. ------------------------------
  1750. make-face-bold-italic: (face &optional screen)
  1751.  
  1752. Make the font of the given face be bold and italic, if possible.  
  1753. Returns nil on failure.
  1754.  
  1755. ------------------------------
  1756. make-face-italic: (face &optional screen)
  1757.  
  1758. Make the font of the given face be italic, if possible.  
  1759. Returns nil on failure.
  1760.  
  1761. ------------------------------
  1762. make-face-unbold: (face &optional screen)
  1763.  
  1764. Make the font of the given face be non-bold, if possible.  
  1765. Returns nil on failure.
  1766.  
  1767. ------------------------------
  1768. make-face-unitalic: (face &optional screen)
  1769.  
  1770. Make the font of the given face be non-italic, if possible.  
  1771. Returns nil on failure.
  1772.  
  1773. ------------------------------
  1774. make-hashtable: (size)
  1775. Make a hashtable of size SIZE.
  1776.  
  1777. ------------------------------
  1778. make-keymap: ()
  1779.  
  1780. Construct and return a new keymap object.  All entries in it are nil,
  1781. meaning "command undefined".
  1782.  
  1783. ------------------------------
  1784. make-obsolete: (fn new)
  1785.  
  1786. Make the byte-compiler warn that FUNCTION is obsolete and NEW should be
  1787. used instead.  If NEW is a string, that is the use instead message.
  1788.  
  1789. ------------------------------
  1790. make-screen-invisible: (screen)
  1791.  
  1792. Unconditionally removes screen from the display (assuming it is an X-window).
  1793. If what you want to do is iconify the screen (if the window manager uses
  1794. icons) then you should call `iconify-screen' instead.
  1795.  
  1796. ------------------------------
  1797. make-screen-visible: (screen)
  1798.  
  1799. Make the screen SCREEN visible (assuming it is an X-window).
  1800. Also raises the screen so that nothing obscures it.
  1801.  
  1802. ------------------------------
  1803. make-temp-name: (prefix)
  1804.  
  1805. Generate temporary file name (string) starting with PREFIX (a string).
  1806. The Emacs process number forms part of the result,
  1807. so there is no danger of generating a name being used by another process.
  1808.  
  1809. ------------------------------
  1810. map-extents: (function &optional buffer from to maparg)
  1811.  
  1812. Map FUNCTION over the extents which overlap region in BUFFER starting at
  1813.  FROM and ending at TO.  FUNCTION is called with arguments (extent, MAPARG).
  1814. All arguments except FUNCTION are optional, with FROM, TO, MAPARG, and
  1815.  BUFFER defaulting to the beginning of BUFFER, the end of BUFFER, NIL, and
  1816.  current buffer, respectively.
  1817. If the function returns non-nil, then map-extents returns immediately.
  1818. map-extents always returns nil.
  1819.  
  1820. ------------------------------
  1821. map-keymap: (function keymap &optional sort_first)
  1822.  
  1823. Apply FUNCTION to each element of KEYMAP.  FUNCTION will be called with
  1824. two arguments: a key-description list, and the binding.  The order in which
  1825. the elements of the keymap are passed to the function is unspecified.  If
  1826. the function inserts new elements into the keymap, it may or may not
  1827. be called with them later.  No element of the keymap will ever be passed to
  1828. the function more than once.
  1829.  
  1830. The function will not be called on elements of this keymaps parent (see the
  1831. function keymap-parent) or upon keymaps which are contained within this
  1832. keymap (multi-character definitions).  It will be called on "meta"
  1833. characters, however, since they are not really two-character sequences.
  1834.  
  1835. If the optional third argument SORT-FIRST is non-nil, then the elements of
  1836. the keymap will be passed to the mapper function in a canonical order.
  1837. Otherwise, they will be passed in hash (that is, random) order, which is
  1838. faster.
  1839.  
  1840. ------------------------------
  1841. maphash: (function table)
  1842.  
  1843. Map FUNCTION over entries in TABLE with, calling it with two
  1844. arguments, each key and value in the table.
  1845.  
  1846. ------------------------------
  1847. mark-bob: (&optional arg)                    bound to C-<
  1848.  
  1849. Push a mark at the beginning of the buffer; leave point where it is.
  1850. With arg N, push mark N/10 of the way from the true beginning.
  1851.  
  1852. ------------------------------
  1853. mark-eob: (&optional arg)                    bound to C->
  1854.  
  1855. Push a mark at the end of the buffer; leave point where it is.
  1856. With arg N, push mark N/10 of the way from the true end.
  1857.  
  1858. ------------------------------
  1859. member: (elt list)
  1860.  
  1861. Return non-nil if ELT is an element of LIST.  Comparison done with EQUAL.
  1862. The value is actually the tail of LIST whose car is ELT.
  1863.  
  1864. ------------------------------
  1865. menu-event-p: (obj)
  1866. True if the argument is a menu event object.
  1867.  
  1868. ------------------------------
  1869. modify-screen-parameters: (screen alist)
  1870.  
  1871. Modify the parameters of screen SCREEN according to ALIST.
  1872. ALIST is an alist of parameters to change and their new values.
  1873. Each element of ALIST has the form (PARM . VALUE), where PARM is a symbol.
  1874. The meaningful PARMs depend on the kind of screen; undefined PARMs are ignored.
  1875.  
  1876. ------------------------------
  1877. motion-event-p: (obj)
  1878. True if the argument is a mouse-motion event object.
  1879.  
  1880. ------------------------------
  1881. mouse-del-char: (event)
  1882. Delete the char pointed to by the mouse.
  1883.  
  1884. ------------------------------
  1885. mouse-delete-window: ()
  1886. Delete the Emacs window the mouse is on.
  1887.  
  1888. ------------------------------
  1889. mouse-keep-one-window: ()
  1890. Select Emacs window mouse is on, then kill all other Emacs windows.
  1891.  
  1892. ------------------------------
  1893. mouse-kill-line: (event)
  1894. Kill the line pointed to by the mouse.
  1895.  
  1896. ------------------------------
  1897. mouse-line-length: (event)
  1898. Print the length of the line indicated by the pointer.
  1899.  
  1900. ------------------------------
  1901. mouse-scroll: (event)
  1902. Scroll point to the mouse position.
  1903.  
  1904. ------------------------------
  1905. mouse-select: ()
  1906. Select Emacs window the mouse is on.
  1907.  
  1908. ------------------------------
  1909. mouse-select-and-split: ()
  1910. Select Emacs window mouse is on, then split it vertically in half.
  1911.  
  1912. ------------------------------
  1913. mouse-set-mark: (event)
  1914.  
  1915. Select Emacs window mouse is on, and set mark at mouse position.
  1916. Display cursor at that position for a second.
  1917.  
  1918. ------------------------------
  1919. mouse-set-point: (event)
  1920. Select Emacs window mouse is on, and move point to mouse position.
  1921.  
  1922. ------------------------------
  1923. mouse-track: (event)
  1924.  
  1925. Make a selection with the mouse.  This should be bound to a mouse button.
  1926. If you click-and-drag, the selection will be set to the region between the
  1927. point of the initial click and the point at which you release the button.
  1928. These positions need not be ordered.
  1929.  
  1930. If you click-and-release without moving the mouse, then the point is moved,
  1931. and the selection is disowned (there will be no selection owner.)  The mark
  1932. will be set to the previous position of point.
  1933.  
  1934. If you double-click, the selection will extend by symbols instead of by
  1935. characters.  If you triple-click, the selection will extend by lines.
  1936.  
  1937. If you drag the mouse off the top or bottom of the window, you can select
  1938. pieces of text which are larger than the visible part of the buffer; the 
  1939. buffer will scroll as necessary.
  1940.  
  1941. The selected text becomes the current X Selection, and is also copied to the
  1942. top of the kill ring.  The point will be left at the position at which you
  1943. released the button, and the mark will be left at the initial click position.
  1944.  
  1945. See also the mouse-track-adjust command, on Sh-button1.
  1946.  
  1947. ------------------------------
  1948. mouse-track-adjust: (event)
  1949.  
  1950. Extend the existing selection.  This should be bound to a mouse button.
  1951. The selection will be enlarged or shrunk so that the point of the mouse
  1952. click is one of its endpoints.  This is only really meaningful after the
  1953. mouse-track command (button1) has been executed.
  1954.  
  1955. ------------------------------
  1956. mouse-track-and-copy-to-cutbuffer: (event)
  1957. Makes a selection like mouse-track, but also copies it to the cutbuffer.
  1958.  
  1959. ------------------------------
  1960. mouse-track-delete-and-insert: (event)
  1961.  
  1962. Make a selection with the mouse and insert it at point.
  1963. This is exactly the same as the mouse-track command on button1, 
  1964. except that point is not moved; the selected text is immediately inserted
  1965. after being selected; and the text of the selection is deleted.
  1966.  
  1967. ------------------------------
  1968. mouse-track-insert: (event)
  1969.  
  1970. Make a selection with the mouse and insert it at point.
  1971. This is exactly the same as the mouse-track command on button1, 
  1972. except that point is not moved; the selected text is immediately inserted
  1973. after being selected; and the selection is immediately disowned afterwards.
  1974.  
  1975. ------------------------------
  1976. mouse-window-to-region: (event)
  1977. Narrow window to region between cursor and mouse pointer.
  1978.  
  1979. ------------------------------
  1980. next-command-event: (event)
  1981.  
  1982. Given an event structure, fills it in with the next keyboard, mouse
  1983. press, or mouse release event available from the user.  If there are
  1984. non-command events available (mouse motion, sub-process output, etc) then
  1985. these will be executed (with dispatch-event) and discarded.  This 
  1986. function is provided as a convenience; it is equivalent to the elisp code
  1987.  
  1988.     (while (progn
  1989.         (next-event event)
  1990.             (not (or (key-press-event-p event)
  1991.                      (button-press-event-p event)
  1992.                      (button-release-event-p event)
  1993.                      (menu-event-p event))))
  1994.       (dispatch-event event))
  1995.  
  1996. ------------------------------
  1997. next-event: (event)
  1998.  
  1999. Given an event structure, fills it in with the next event available
  2000. from the window system or terminal driver.  Pass this object to
  2001. dispatch-event to handle it.
  2002.  
  2003. See also the function next-command-event.
  2004.  
  2005. If the second optional argument is non-nil, then this will never return
  2006. key-press and mouse-click events, but will delay them until later.  You
  2007. should probably never need to use this option; it is used for implementing
  2008. the wait-reading-process-input function.
  2009.  
  2010. ------------------------------
  2011. next-extent: (extent_obj)
  2012.  
  2013. Find next extent after EXTENT. If EXTENT is a buffer
  2014. return the first extent in the buffer.
  2015.  
  2016. ------------------------------
  2017. next-screen: (&optional screen miniscreen visible-only-p)
  2018.  
  2019. Return the next screen in the screen list after SCREEN.
  2020. If MINISCREEN is non-nil, include the global-minibuffer-screen if it
  2021. has its own screen.
  2022. If VISIBLE-ONLY-P is non-nil, then cycle through the visible screens,
  2023. instead of all screens.
  2024.  
  2025. ------------------------------
  2026. other-window-any-screen: (n)
  2027.  
  2028. Select the ARGth different window on any screen.
  2029. All windows on current screen are arranged in a cyclic order.
  2030. This command selects the window ARG steps away in that order.
  2031. A negative ARG moves in the opposite order.  However, unlike
  2032. other-window, this command will select a window on the next
  2033. (or previous) screen instead of wrapping around to the top
  2034. (or bottom) of this screen, when there are no more windows.
  2035.  
  2036. ------------------------------
  2037. play-sound: (sound &optional volume)
  2038.  
  2039. Play a sound of the provided type.
  2040. See the variable sound-alist.
  2041.  
  2042. ------------------------------
  2043. popup-dialog-box: (dbox_desc)
  2044.  
  2045. Pop up a dialog box.
  2046. A dialog box description is a list.
  2047.  
  2048.  - The first element of the list is a string to display in the dialog box.
  2049.  - The rest of the elements are descriptions of the dialog box's buttons.
  2050.    Each one is a vector of three elements:
  2051.    - The first element is the text of the button.
  2052.    - The second element is the `callback'.
  2053.    - The third element is t or nil, whether this button is selectable.
  2054.  
  2055. If the `callback' of a button is a symbol, then it must name a command.
  2056. It will be invoked with `call-interactively'.  If it is a list, then it is
  2057. evaluated with `eval'.
  2058.  
  2059. One (and only one) of the buttons may be `nil'.  This marker means that all
  2060. following buttons should be flushright instead of flushleft.
  2061.  
  2062. The syntax, more precisely:
  2063.  
  2064.    form        :=  <something to pass to `eval'>
  2065.    command    :=  <a symbol or string, to pass to `call-interactively'>
  2066.    callback     :=  command | form
  2067.    active-p    :=  <t or nil, whether this thing is selectable>
  2068.    name        :=  <string>
  2069.    partition    :=  'nil'
  2070.    button    :=  '['  name callback active-p ']'
  2071.    dialog    :=  '(' name [ button ]+ [ partition [ button ]+ ] ')'
  2072.  
  2073. ------------------------------
  2074. popup-menu: (menu_desc)
  2075.  
  2076. Pop up the given menu.
  2077. A menu is a list of menu items, strings, and submenus.
  2078.  
  2079. The first element of a menu must be a string, which is the name of the
  2080. menu.  This is the string that will be displayed in the parent menu, if
  2081. any.  For toplevel menus, it is ignored.  This string is not displayed
  2082. in the menu itself.
  2083.  
  2084. A menu item is a vector of three or four elements:
  2085.  
  2086.  - the name of the menu item (a string);
  2087.  - the `callback' of that item;
  2088.  - whether this item is active (selectable);
  2089.  - and an optional string to append to the name.
  2090.  
  2091. If the `callback' of a menu item is a symbol, then it must name a command.
  2092. It will be invoked with `call-interactively'.  If it is a list, then it is
  2093. evaluated with `eval'.
  2094.  
  2095. The fourth element of a menu item is a convenient way of adding the name
  2096. of a command's ``argument'' to the menu, like ``Kill Buffer NAME''.
  2097.  
  2098. If an element of a menu is a string, then that string will be presented in
  2099. the menu as unselectable text.
  2100.  
  2101. If an element of a menu is a string consisting solely of hyphens, then that
  2102. item will be presented as a solid horizontal line.
  2103.  
  2104. If an element of a menu is a list, it is treated as a submenu.  The name of
  2105. that submenu (the first element in the list) will be used as the name of the
  2106. item representing this menu on the parent.
  2107.  
  2108. The syntax, more precisely:
  2109.  
  2110.    form        :=  <something to pass to `eval'>
  2111.    command    :=  <a symbol or string, to pass to `call-interactively'>
  2112.    callback     :=  command | form
  2113.    active-p    :=  <t or nil, whether this thing is selectable>
  2114.    text        :=  <string, non selectable>
  2115.    name        :=  <string>
  2116.    argument    :=  <string>
  2117.    menu-item    :=  '['  name callback active-p [ argument ]  ']'
  2118.    menu        :=  '(' name [ menu-item | menu | text ]+ ')'
  2119.  
  2120. ------------------------------
  2121. process-event-p: (obj)
  2122. True if the argument is a process-output event object.
  2123.  
  2124. ------------------------------
  2125. proclaim-inline: (&rest fns)
  2126.  
  2127. Cause the named functions to be open-coded when called from compiled code.
  2128. They will only be compiled open-coded when byte-compile-optimize is true.
  2129.  
  2130. ------------------------------
  2131. proclaim-notinline: (&rest fns)
  2132. Cause the named functions to no longer be open-coded.
  2133.  
  2134. ------------------------------
  2135. puthash: (obj val table)
  2136. Hash OBJ to VAL in TABLE.
  2137.  
  2138. ------------------------------
  2139. raise-screen: (screen)
  2140. Make the window of SCREEN be the uppermost one (fully visible).
  2141.  
  2142. ------------------------------
  2143. round: (arg)
  2144. Return the nearest integer to ARG.
  2145.  
  2146. ------------------------------
  2147. lower-screen: (screen)
  2148. Make the window of SCREEN be the bottommost one.
  2149.  
  2150. ------------------------------
  2151. read-mouse-position: (screen)
  2152. Return a cons (x . y) which represents the position of the mouse.
  2153.  
  2154. ------------------------------
  2155. register-to-window-config: (name)
  2156.  
  2157. Restore (make current) the window configuration in register REG (a letter).
  2158. Use with a register previously set with C-x 6.
  2159.  
  2160. ------------------------------
  2161. relabel-menu-item: (path new-name)
  2162.  
  2163. Change the string of the specified menu item.
  2164. PATH is a list of strings which identify the position of the menu item in 
  2165. the menu hierarchy.  ("File" "Save") means the menu item called "Save"
  2166. under the toplevel "File" menu.  ("Menu" "Foo" "Item") means the 
  2167. menu item called "Item" under the "Foo" submenu of "Menu".
  2168. NEW-NAME is the string that the menu item will be printed as from now on.
  2169.  
  2170. ------------------------------
  2171. remhash: (obj table)
  2172. Remove hashed value for OBJ in TABLE.
  2173.  
  2174. ------------------------------
  2175. remove-directory: (dir)
  2176. Remove a directory.  One argument, a file name string.
  2177.  
  2178. ------------------------------
  2179. remove-hook: (hook-var function)
  2180.  
  2181. Remove a function from a hook, if it is present.
  2182. First argument HOOK-VAR (a symbol) is the name of a hook, second
  2183.  argument FUNCTION is the function to remove (compared with `eq').
  2184.  
  2185. ------------------------------
  2186. remprop: (symbol property)
  2187. Remove from SYMBOLs plist the property PROP and its value.
  2188.  
  2189. ------------------------------
  2190. screen-list: ()
  2191. Return a list of all screens.
  2192.  
  2193. ------------------------------
  2194. screen-name: (&optional screen)
  2195.  
  2196. Returns the name of SCREEN (defaulting to the selected screen).
  2197. This is not the same as the title of the screen.
  2198.  
  2199. ------------------------------
  2200. screen-parameters: (&optional screen)
  2201.  
  2202. Return the parameters-alist of screen SCREEN.
  2203. It is a list of elements of the form (PARM . VALUE), where PARM is a symbol.
  2204. The meaningful PARMs depend on the kind of screen.
  2205.  
  2206. ------------------------------
  2207. screen-root-window: (&optional screen)
  2208. Returns the root-window of SCREEN.
  2209.  
  2210. ------------------------------
  2211. screen-selected-window: (&optional screen)
  2212. Return the selected window of screen SCREEN.
  2213.  
  2214. ------------------------------
  2215. screen-totally-visible-p: (&optional screen)
  2216. Return T if screen is not obscured by any other X windows, NIL otherwise
  2217.  
  2218. ------------------------------
  2219. screen-visible-p: (screen)
  2220.  
  2221. Return t if SCREEN is now "visible" (actually in use for display).
  2222. A screen that is not "visible" is not updated and, if it works through
  2223. a window system, it may not show at all.
  2224. Return the symbol icon if window is visible only as an icon.
  2225.  
  2226. ------------------------------
  2227. screenp: (screen)
  2228.  
  2229. Return non-nil if OBJECT is a screen.
  2230. Value is t for a termcap screen (a character-only terminal),
  2231. x for an Emacs screen that is really an X window.
  2232.  
  2233. ------------------------------
  2234. select-screen: (screen)
  2235.  
  2236. Select the screen S.
  2237. S's selected window becomes the selected window.
  2238.  
  2239. ------------------------------
  2240. selected-screen: ()
  2241. Return the screen that is now selected.
  2242.  
  2243. ------------------------------
  2244. set-buffer-dedicated-screen: (buffer screen)
  2245.  
  2246. For this BUFFER, set the SCREEN dedicated to it.
  2247. SCREEN must be a screen or nil.
  2248.  
  2249. ------------------------------
  2250. set-buffer-modtime: (buf &optional time)
  2251.  
  2252. Update BUFFER's recorded modification time from the associated 
  2253. files modtime, if there is an associated file. If not, use the 
  2254. current time. In either case, if the optional arg TIME is supplied, use 
  2255. that is it is either an integer or a cons of two integers.
  2256.  
  2257. ------------------------------
  2258. set-case-table: (table)
  2259.  
  2260. Select a new case table for the current buffer.
  2261. A case table is a list (DOWNCASE UPCASE CANONICALIZE EQUIVALENCES)
  2262.  where each element is either nil or a string of length 256.
  2263. DOWNCASE maps each character to its lower-case equivalent.
  2264. UPCASE maps each character to its upper-case equivalent;
  2265.  if lower and upper case characters are in 1-1 correspondence,
  2266.  you may use nil and the upcase table will be deduced from DOWNCASE.
  2267. CANONICALIZE maps each character to a canonical equivalent;
  2268.  any two characters that are related by case-conversion have the same
  2269.  canonical equivalent character.
  2270. EQUIVALENCES is a map that cyclicly permutes each equivalence class
  2271.  (of characters with the same canonical equivalent).
  2272. Both CANONICALIZE and EQUIVALENCES may be nil, in which case
  2273.  both are deduced from DOWNCASE and UPCASE.
  2274.  
  2275. ------------------------------
  2276. set-default-file-mode: (nmask)
  2277.  
  2278. Set Unix umask value to ARGUMENT, and return old value.
  2279. The umask value is the default protection mode for new files.
  2280.  
  2281. ------------------------------
  2282. set-extent-attribute: (extent attr)
  2283.  
  2284. Make EXTENT have ATTRIBUTE.
  2285. ATTRIBUTE must be one of the following symbols:
  2286.  
  2287.     highlight        highlight when the mouse moves over it
  2288.     write-protected    text within this extent will be unmodifyable
  2289.     invisible        don't display the text in this region
  2290.     unhighlight        turn off `highlight'
  2291.     writable        turn off `write-protected'
  2292.     visible        turn off `invisible'
  2293.  
  2294. ------------------------------
  2295. set-extent-begin-glyph: (extent_obj begin_glyph)
  2296.  
  2297. Display a bitmap at the beginning of the given extent.
  2298. The begin-glyph should be a string naming a bitmap file (or nil.)
  2299.  
  2300. ------------------------------
  2301. set-extent-data: (extent data)
  2302.  
  2303. Set the user data slot of the given extent.
  2304. Access this using the `extent-data' function.
  2305.  
  2306. ------------------------------
  2307. set-extent-end-glyph: (extent_obj end_glyph)
  2308.  
  2309. Display a bitmap at the end of the given extent.
  2310. The end-glyph should be a string naming a bitmap file (or nil.)
  2311.  
  2312. ------------------------------
  2313. set-extent-endpoints: (extent_obj start end)
  2314. Set the endpoints of EXTENT to START, END.
  2315.  
  2316. ------------------------------
  2317. set-extent-face: (extent face)
  2318.  
  2319. Make the given EXTENT have the graphic attributes specified by FACE.
  2320.  
  2321. ------------------------------
  2322. set-extent-priority: (extent pri)
  2323.  
  2324. Changes the display priority of EXTENT.
  2325. When the extent attributes are being merged for display, the priority
  2326. is used to determine which extent takes precedence in the event of a
  2327. conflict (two extents whose faces both specify font, for example: the
  2328. font of the extent with the higher priority will be used.)
  2329. Extents are created with priority 0; priorities may be negative.
  2330.  
  2331. ------------------------------
  2332. set-face-background: (face color &optional screen)
  2333.  
  2334. Change the background color of the given face.  The color should be a 
  2335. string, the name of a color.  If the optional SCREEN argument is provided, 
  2336. this face will be changed only in that screen; otherwise it will be changed 
  2337. in all screens.
  2338.  
  2339. ------------------------------
  2340. set-face-background-pixmap: (face name &optional screen)
  2341.  
  2342. Change the background pixmap of the given face.  The pixmap name should be
  2343. a string, the name of a file of pixmap data.  The directories listed in the
  2344. x-bitmap-file-path variable will be searched.  The bitmap may also be a list
  2345. of the form (width height data) where width and height are the size in pixels,
  2346. and data is a string, containing the raw bits of the bitmap.  
  2347. If the optional SCREEN argument is provided, this face will be changed only
  2348. in that screen; otherwise it will be changed in all screens.
  2349.  
  2350. ------------------------------
  2351. set-face-font: (face font &optional screen)
  2352.  
  2353. Change the font of the given face.  The font should be a string, the name
  2354. changed only in that screen; otherwise it will be changed in all screens.
  2355.  
  2356. ------------------------------
  2357. set-face-foreground: (face color &optional screen)
  2358.  
  2359. Change the foreground color of the given face.  The color should be a 
  2360. string, the name of a color.  If the optional SCREEN argument is provided, 
  2361. this face will be changed only in that screen; otherwise it will be changed 
  2362. in all screens.
  2363.  
  2364. ------------------------------
  2365. set-face-underline-p: (face underline-p &optional screen)
  2366.  
  2367. Change whether the given face is underlined.  
  2368. If the optional SCREEN argument is provided, this face will be changed only
  2369. in that screen; otherwise it will be changed in all screens.
  2370.  
  2371. ------------------------------
  2372. set-keymap-parent: (keymap parent)
  2373.  
  2374. Sets the parent keymap of the given keymap.
  2375. The parent of a keymap is searched for keybindings when a key sequence
  2376. isn't bound in this one.  The (current-global-map) is the default parent
  2377. of all keymaps.
  2378.  
  2379. ------------------------------
  2380. set-mouse-position: (screen x y)
  2381. Move the mouse pointer to the center of character cell (X,Y) in SCREEN.
  2382.  
  2383. ------------------------------
  2384. set-screen-position: (screen xoffset yoffset)
  2385. Sets position of SCREEN in pixels to XOFFSET by YOFFSET.
  2386.  
  2387. ------------------------------
  2388. set-screen-size: (screen cols rows &optional pretend)
  2389.  
  2390. Sets size of SCREEN to COLS by ROWS.
  2391. Optional fourth arg non-nil means that redisplay should use COLS by ROWS
  2392. but that the idea oft eh acrual size of the screen should not be changed.
  2393.  
  2394. ------------------------------
  2395. set-standard-case-table: (table)
  2396.  
  2397. Select a new standard case table for new buffers.
  2398. See set-case-table for more info on case tables.
  2399.  
  2400. ------------------------------
  2401. set-visited-file-modtime: ()
  2402.  
  2403. Update buffers recorded modification time from the visited files time.
  2404. Useful if the buffer was not read from the file normally
  2405. or if the file itself has been changed for some known benign reason.
  2406.  
  2407. ------------------------------
  2408. set-window-buffer-dedicated: (window arg)
  2409.  
  2410. Make WINDOW display BUFFER and be dedicated to that buffer.
  2411. Then Emacs will not automatically change which buffer appears in WINDOW.
  2412. If BUFFER is nil, make WINDOW not be dedicated (but dont change which
  2413. buffer appears in it currently).
  2414.  
  2415. ------------------------------
  2416. sin: (arg)
  2417. Return the sine of ARG.
  2418.  
  2419. ------------------------------
  2420. sinh: (arg)
  2421. Return the hyperbolic sine of ARG.
  2422.  
  2423. ------------------------------
  2424. standard-case-table: ()
  2425.  
  2426. Return the standard case table.
  2427. This is the one used for new buffers.
  2428.  
  2429. ------------------------------
  2430. sqrt: (arg)
  2431. Return the square root of ARG.
  2432.  
  2433. ------------------------------
  2434. start-timer: (name function value &optional restart)
  2435.  
  2436. Start a timer.
  2437. Args are NAME, FUNCTION, VALUE &optional RESTART.
  2438. NAME is an identifier for the timer.  It must be a string.  If a timer
  2439.   already exists with this name, NAME will be modified slightly to until
  2440.   it is unique.
  2441. FUNCTION should be a function (or symbol naming one) of no arguments.  It
  2442.   will be called each time the timer expires.  The function can access
  2443.   timer that invoked it through the variable current-timer.
  2444. VALUE is the number of seconds until this timer expires.
  2445. Optional fourth arg RESTART non-nil means that this timer should be
  2446.   restarted automatically after its function is called.  Normally a timer
  2447.   is deleted at expiration after its function has returned. 
  2448.   If non-nil RESTART should be a number indicating the value at which the
  2449.   timer should be set at restart time.
  2450. Returns the newly created timer.
  2451.  
  2452. ------------------------------
  2453. switch-to-buffer-new-screen: (buffer)
  2454.  
  2455. Just like switch-to-buffer, but creates a new screen for it first.
  2456.  
  2457. ------------------------------
  2458. switch-to-other-buffer: (arg)
  2459.  
  2460. Switch to the previous buffer.  With a numeric arg, n, switch to the nth
  2461. most recent buffer.  With an arg of 0, buries the current buffer at the
  2462. bottom of the buffer stack.
  2463.  
  2464. ------------------------------
  2465. tan: (arg)
  2466. Return the tangent of ARG.
  2467.  
  2468. ------------------------------
  2469. tanh: (arg)
  2470. Return the hyperbolic tangent of ARG.
  2471.  
  2472. ------------------------------
  2473. truename: (name &optional defalt)
  2474.  
  2475. Returns the canonical name of the given FILE.
  2476. Second arg DEFAULT is directory to start with if FILE is relative
  2477.  (does not start with slash); if DEFAULT is nil or missing,
  2478.  the current buffer's value of default-directory is used.
  2479. No component of the resulting pathname will be a symbolic link, as
  2480.  in the realpath() function.
  2481. If the file does not exist, or is otherwise unable to be resolved,
  2482.  nil is returned.
  2483.  
  2484. ------------------------------
  2485. truncate: (arg)
  2486. Truncate a floating point number to an int.  Rounds the value toward zero.
  2487.  
  2488. ------------------------------
  2489. timeout-event-p: (obj)
  2490. True if the argument is a timeout event object.
  2491.  
  2492. ------------------------------
  2493. try-face-font: (face font &optional screen)
  2494. Like set-face-font, but returns nil on failure instead of an error.
  2495.  
  2496. ------------------------------
  2497. user-login-name: ()
  2498.  
  2499. Return the name under which the user logged in, as a string.
  2500. This is based on the effective uid, not the real uid.
  2501. Also, if the environment variable USER or LOGNAME is set,
  2502. that determines the value of this function.
  2503.  
  2504. ------------------------------
  2505. user-original-login-name: ()
  2506.  
  2507. Return users login name from original login.
  2508. This tries to remain unaffected by su, by looking in environment variables.
  2509.  
  2510. ------------------------------
  2511. visible-screen-list: ()
  2512. Return a list of all screens now "visible" (being updated).
  2513.  
  2514. ------------------------------
  2515. walk-windows: (proc &optional minibuf all-screens)
  2516.  
  2517. Cycle through all visible windows, calling PROC for each one.
  2518. PROC is called with a window as argument.
  2519. Optional second arg MINIBUF t means count the minibuffer window
  2520. even if not active.  If MINIBUF is neither t nor nil it means
  2521. not to count the minibuffer even if it is active.
  2522. Optional third arg ALL-SCREENS t means include all windows in all screens;
  2523. otherwise cycle within the selected screen.
  2524.  
  2525. ------------------------------
  2526. window-config-to-register: (name)
  2527.  
  2528. Save the current window configuration in register REG (a letter).
  2529. It can be later retrieved using M-x register-to-window-config.
  2530.  
  2531. ------------------------------
  2532. window-dedicated-p: (window)
  2533.  
  2534. Return WINDOWs dedicated object, usually t or nil.
  2535. See also set-window-buffer-dedicated.
  2536.  
  2537. ------------------------------
  2538. window-end: (&optional window)
  2539. Return position at which display currently ends in WINDOW.
  2540.  
  2541. ------------------------------
  2542. window-minibuffer-p: (window)
  2543. Returns non-nil if WINDOW is a minibuffer window.
  2544.  
  2545. ------------------------------
  2546. window-screen: (window)
  2547. Return the screen that window WINDOW is on.
  2548.  
  2549. ------------------------------
  2550. x-color-display-p: (&optional screen)
  2551. Returns t if the X display of the given screen supports color.
  2552.  
  2553. ------------------------------
  2554. x-copy-primary-selection: ()
  2555. If there is a selection, copy it to both the kill ring and the Clipboard.
  2556.  
  2557. ------------------------------
  2558. x-create-screen: (parms)
  2559.  
  2560. Make a new X window, which is considered a "screen" in Emacs terms.
  2561. Return an Emacs screen object representing the X window.
  2562. ALIST is an alist of screen parameters.
  2563. The value of x-screen-defaults is an additional alist
  2564. of default parameters which apply when not overridden by ALIST.
  2565.  
  2566. ------------------------------
  2567. x-debug-mode: (arg)
  2568.  
  2569. With a true arg, put the connection to the X server in synchronous
  2570. mode; this is slower.  False turns it off.
  2571. Do not simply call XSynchronize() from gdb; that won't work.
  2572.  
  2573. ------------------------------
  2574. x-delete-primary-selection: ()
  2575.  
  2576. If there is a selection, delete the text it covers *without* copying it to
  2577. the kill ring or the Clipboard.
  2578.  
  2579. ------------------------------
  2580. x-disown-selection: ()
  2581.  
  2582. Assuming we own the selection, disown it.  With an argument, discard the
  2583. secondary selection instead of the primary selection.
  2584.  
  2585. ------------------------------
  2586. x-display-color-cells: (&optional screen)
  2587. Returns the number of color cells of the display `screen' is on.
  2588.  
  2589. ------------------------------
  2590. x-display-pixel-width: (&optional screen)
  2591. Returns the width in pixels of the display `screen' is on.
  2592.  
  2593. ------------------------------
  2594. x-display-pixel-height: (&optional screen)
  2595. Returns the height in pixels of the display `screen' is on.
  2596.  
  2597. ------------------------------
  2598. x-display-planes: (&optional screen)
  2599. Returns the number of bitplanes of the display `screen' is on.
  2600.  
  2601. ------------------------------
  2602. x-display-visual-class: (&optional screen)
  2603.  
  2604. Returns the visual class of the display `screen' is on.
  2605. The returned value will be one of the symbols StaticGray, GrayScale,
  2606. StaticColor, PseudoColor, TrueColor, or DirectColor.
  2607.  
  2608. ------------------------------
  2609. x-get-clipboard: ()
  2610. Return text pasted to the clipboard.
  2611.  
  2612. ------------------------------
  2613. x-get-cutbuffer: (&optional which-one)
  2614.  
  2615. Returns the value of one of the 8 X server cut-buffers.  Optional arg
  2616. WHICH-ONE should be a number from 0 to 7, defaulting to 0.
  2617. Cut buffers are considered obsolete; you should use selections instead.
  2618.  
  2619. ------------------------------
  2620. x-get-resource: (name class type &optional screen)
  2621.  
  2622. Retrieve an X resource from the resource manager.
  2623. The first arg is the name of the resource to retrieve, such as "font".
  2624. The second arg is the class of the resource to retrieve, like "Font".
  2625. The third arg should be one of the symbols string, integer, or boolean,
  2626. specifying the type of object that the database is searched for.
  2627. The fourth arg is the screen to search for the resources on, defaulting
  2628. to the selected screen.
  2629.  
  2630. The call
  2631.     (x-get-resource "font" "Font" string)
  2632.  
  2633. is an interface to the C call
  2634.  
  2635.     XrmGetResource (db, "Emacs.this_screen_name.font",
  2636.             "Emacs.EmacsScreen.Font",
  2637.             "String");
  2638.  
  2639. Therefore if you want to retrieve a deeper resource, for example,
  2640. "Emacs.foo.foreground", you need to specify the same number of links
  2641. in the class path:
  2642.     (x-get-resource "foo.foreground" "Thing.Foreground" string)
  2643.  
  2644. which is equivalent to 
  2645.  
  2646.     XrmGetResource (db, "Emacs.screen_name.foo.foreground",
  2647.             "Emacs.EmacsScreen.Thing.Foreground",
  2648.             "String");
  2649.  
  2650. The returned value of this function is nil if the queried resource is not
  2651. found.  If the third arg is string, a string is returned, and if it is
  2652. integer, an integer is returned.  If the third arg is boolean, then the
  2653. returned value is the list (t) for true, (nil) for false, and is nil to
  2654. mean unspecified.
  2655.  
  2656. ------------------------------
  2657. x-get-secondary-selection: ()
  2658. Return text selected from some X window.
  2659.  
  2660. ------------------------------
  2661. x-get-selection: ()
  2662. Return text selected from some X window.
  2663.  
  2664. ------------------------------
  2665. x-get-selection-internal: (selection_symbol target_type)
  2666.  
  2667. Return text selected from some X window.
  2668. SELECTION is a symbol, typically PRIMARY, SECONDARY, or CLIPBOARD.
  2669. TYPE is the type of data desired, typically STRING.
  2670.  
  2671. ------------------------------
  2672. x-grab-pointer: (&optional shape ignore_keyboard)
  2673.  
  2674. Grab the pointer and restrict it to its current window.  If optional
  2675. SHAPE is non-nil, change the pointer shape to that.  If second optional
  2676. argument MOUSE-ONLY is non-nil, ignore keyboard events during the grab.
  2677.  
  2678. ------------------------------
  2679. x-insert-selection: ()
  2680. Insert the current selection into buffer at point.
  2681.  
  2682. ------------------------------
  2683. x-kill-primary-selection: ()
  2684.  
  2685. If there is a selection, delete the text it covers, and copy it to 
  2686. both the kill ring and the Clipboard.
  2687.  
  2688. ------------------------------
  2689. x-make-font-bold: (font)
  2690.  
  2691. Given an X font specification, this attempts to make a bold version
  2692. of it.  If it fails, it returns nil.
  2693.  
  2694. ------------------------------
  2695. x-make-font-demibold: (font)
  2696.  
  2697. Given an X font specification, this attempts to make a demibold version
  2698. of it.  If it fails, it returns nil.
  2699.  
  2700. ------------------------------
  2701. x-make-font-italic: (font)
  2702.  
  2703. Given an X font specification, this attempts to make an italic version
  2704. of it.  If it fails, it returns nil.
  2705.  
  2706. ------------------------------
  2707. x-make-font-oblique: (font)
  2708.  
  2709. Given an X font specification, this attempts to make an italic version
  2710. of it.  If it fails, it returns nil.
  2711.  
  2712. ------------------------------
  2713. x-make-font-unbold: (font)
  2714.  
  2715. Given an X font specification, this attempts to make a non-bold version
  2716. of it.  If it fails, it returns nil.
  2717.  
  2718. ------------------------------
  2719. x-make-font-unitalic: (font)
  2720.  
  2721. Given an X font specification, this attempts to make a non-italic version
  2722. of it.  If it fails, it returns the supplied font name.
  2723.  
  2724. ------------------------------
  2725. x-mouse-kill: (event)
  2726.  
  2727. Kill the text between the point and mouse and copy it to the clipboard and
  2728. to the cut buffer
  2729.  
  2730. ------------------------------
  2731. x-new-screen: ()
  2732. Creates a new Emacs screen (that is, a new X window.)
  2733.  
  2734. ------------------------------
  2735. x-own-clipboard: (string)
  2736. Paste the given string to the X Clipboard.
  2737.  
  2738. ------------------------------
  2739. x-own-secondary-selection: (selection)
  2740.  
  2741. Make a secondary X Selection of the given argument.  The argument may be a 
  2742. string or a cons of two markers (in which case the selection is considered to
  2743. be the text between those markers.)
  2744.  
  2745. ------------------------------
  2746. x-own-selection: (selection)
  2747.  
  2748. Make a primary X Selection of the given argument.  
  2749. The argument may be a string, a cons of two markers or an extent.  In the 
  2750. latter cases the selection is considered to be the text between 
  2751. the markers or the between extents endpoints
  2752.  
  2753. ------------------------------
  2754. x-server-vendor: (&optional screen)
  2755. Returns the vendor ID string of the X server `screen' is on.
  2756.  
  2757. ------------------------------
  2758. x-server-version: (&optional screen)
  2759.  
  2760. Returns the version numbers of the X server `screen' is on.
  2761. The returned value is a list of three integers: the major and minor
  2762. version numbers of the X Protocol in use, and the vendor-specific release
  2763. number.  See also `x-server-vendor'.
  2764.  
  2765. ------------------------------
  2766. x-selection-exists-p: (&optional selection)
  2767.  
  2768. Whether there is an owner for the given X Selection.
  2769. The arg should be the name of the selection in question, typically one of
  2770. the symbols PRIMARY, SECONDARY, or CLIPBOARD.  (For convenience, the symbol
  2771. nil is the same as PRIMARY, and t is the same as SECONDARY.)
  2772.  
  2773. ------------------------------
  2774. x-selection-owner-p: (&optional selection)
  2775.  
  2776. Whether the current Emacs process owns the given X Selection.
  2777. The arg should be the name of the selection in question, typically one of
  2778. the symbols PRIMARY, SECONDARY, or CLIPBOARD.  (For convenience, the symbol
  2779. nil is the same as PRIMARY, and t is the same as SECONDARY.)
  2780.  
  2781. ------------------------------
  2782. x-set-point-and-insert-selection: (event)
  2783. Sets point where clicked and insert the primary selection or the cut buffer.
  2784.  
  2785. ------------------------------
  2786. x-set-screen-icon-pixmap: (screen pixmap &optional mask)
  2787.  
  2788. Set the icon-pixmap of the given screen.
  2789. This should be the name of a bitmap file, or a bitmap description list
  2790. of the form (width height "bitmap-data").
  2791. If the optional third argument is specified, it is the bitmap to use for
  2792. the icon-pixmap-mask (not all window managers obey this.)
  2793. Warning: when you call this function, the pixmap of the previous icon
  2794. of this screen (if any) is currently not freed.
  2795.  
  2796. ------------------------------
  2797. x-set-screen-pointer: (screen cursor-name &optional fg bg)
  2798.  
  2799. Set the mouse cursor of SCREEN to the cursor named CURSOR-NAME,
  2800. with colors FOREGROUND and BACKGROUND.  The string may be any of the
  2801. standard cursor names from appendix B of the Xlib manual (also known as
  2802. the file <X11/cursorfont.h>) minus the XC_ prefix, or it may be a font
  2803. name and glyph index of the form "FONT fontname index [[font] index]",
  2804. or it may be a bitmap file acceptable to XmuLocateBitmapFile().
  2805. If it is a bitmap file, and if a bitmap file whose name is the name of
  2806. the cursor with "msk" exists, then it is used as the mask.  For example,
  2807. a pair of files may be named "cursor.xbm" and "cursor.xbmmsk".
  2808.  
  2809. ------------------------------
  2810. x-store-cutbuffer: (string)
  2811.  
  2812. Store the given string into the X servers primary cut buffer.
  2813. The previous value of the primary cut buffer is rotated to the secondary
  2814. cut buffer, and the second to the third, and so on (there are 8 buffers.)
  2815. Cut buffers are considered obsolete; you should use selections instead.
  2816.  
  2817. ------------------------------
  2818. x-ungrab-pointer: ()
  2819. Release the pointer.
  2820.  
  2821. ------------------------------
  2822. x-yank-clipboard-selection: ()
  2823. If someone owns a Clipboard selection, insert it at point.
  2824.  
  2825. ------------------------------
  2826. y-or-n-p-with-timeout: (timeout prompt &optional default-value)
  2827.  
  2828. Just like y-or-n-p, but will time out after TIMEOUT seconds
  2829. if the user has not yes answered, returning DEFAULT-VALUE.
  2830.  
  2831. ------------------------------
  2832. yes-or-no-p-with-timeout: (timeout prompt &optional default-value)
  2833.  
  2834. Just like yes-or-no-p, but will time out after TIMEOUT seconds
  2835. if the user has not yes answered, returning DEFAULT-VALUE.
  2836.  
  2837. ------------------------------
  2838. zmacs-activate-region: ()
  2839.  
  2840. Make the region between point and mark be in the active (hilighted)
  2841. state, if zmacs-regions is true.  Only a very small number of commands
  2842. should ever do this.
  2843.  
  2844. ------------------------------
  2845. zmacs-deactivate-region: ()
  2846.  
  2847. Make the region between point and mark no longer be in the active
  2848. (hilighted) state, if zmacs-regions is true.  You shouldn't need 
  2849. to call this; the command loop calls it when appropriate.
  2850.  
  2851.  
  2852. New Variables:
  2853. ==============
  2854.  
  2855. ------------------------------
  2856. activate-menubar-hook
  2857.  
  2858. Function or functions called before a menubar menu is pulled down.
  2859. These functions are called with no arguments, and should interrogate and
  2860. modify the value of `current-menubar' as desired.
  2861.  
  2862. The functions on this hook are invoked after the mouse goes down, but before
  2863. the menu is mapped, and may be used to activate, deactivate, add, or delete
  2864. items from the menus.
  2865.  
  2866. These functions may return the symbol `t' to assert that they have made
  2867. no changes to the menubar.  If any other value is returned, the menubar is
  2868. recomputed.  If `t' is returned but the menubar has been changed, then the
  2869. changes may not show up right away.  Returning `nil' when the menubar has
  2870. not changed is not so bad; more computation will be done, but redisplay of
  2871. the menubar will still be performed optimally.
  2872.  
  2873. ------------------------------
  2874. after-change-function
  2875.  
  2876. Function to call after each text change.
  2877. Three arguments are passed to the function: the positions of
  2878. the beginning and end of the range of changed text,
  2879. and the length of the pre-change text replaced by that range.
  2880. For an insertion, the pre-change length is zero;
  2881. for a deletion, that length is the number of characters deleted,
  2882. and the post-change beginning and end are at the same place.
  2883.  
  2884. While executing the after-change-function, changes to buffers do not
  2885. cause calls to any before-change-function or after-change-function.
  2886.  
  2887. ------------------------------
  2888. after-load-alist
  2889.  
  2890. An alist of expressions to be evalled when particular files are loaded.
  2891. Each element looks like (FILENAME FORMS...).
  2892. When load is run and the file-name argument is FILENAME,
  2893. the FORMS in the corresponding element are executed at the end of loading.
  2894.  
  2895. FILENAME must match exactly!  Normally FILENAME is the name of a library,
  2896. with no directory specified, since that is how load is normally called.
  2897. An error in FORMS does not undo the load,
  2898. but does prevent execution of the rest of the FORMS.
  2899.  
  2900. ------------------------------
  2901. after-write-file-hooks
  2902. List of functions to be called after writing out a buffer to a file.
  2903. These hooks are considered to pertain to the visited file.
  2904. So this list is cleared if you change the visited file name.
  2905.  
  2906. ------------------------------
  2907. allow-deletion-of-last-visible-screen
  2908.  
  2909. *If nil, the last visible screen may not be deleted by `delete-window'
  2910. You can never delete the last screen, but setting this to t will allow you
  2911. to delete the last non-iconified screen.  Default nil.
  2912.  
  2913. ------------------------------
  2914. auto-fill-inhibit-regexp
  2915. *Regexp to match lines which should not be auto-filled.
  2916.  
  2917. ------------------------------
  2918. auto-lower-screen
  2919.  
  2920. *If true, screens will be lowered to the bottom when no longer selected.
  2921. Under X, most ICCCM-compliant window managers will have an option to do this
  2922. for you, but this variable is provided in case you're using a broken WM.
  2923.  
  2924. ------------------------------
  2925. auto-raise-screen
  2926.  
  2927. *If true, screens will be raised to the top when selected.
  2928. Under X, most ICCCM-compliant window managers will have an option to do this
  2929. for you, but this variable is provided in case you're using a broken WM.
  2930.  
  2931. ------------------------------
  2932. auto-save-timeout
  2933.  
  2934. *Number of seconds idle time before auto-save.
  2935. Zero or nil means disable auto-saving due to idleness.
  2936.  
  2937. The actual amount of idle time between auto-saves is logarithmically related
  2938. to the size of the current buffer.  This variable is the number of seconds
  2939. after which an auto-save will happen when the current buffer is 50k or less;
  2940. the timeout will be 2 1/4 times this in a 200k buffer, 3 3/4 times this in a
  2941. 1000k buffer, and 4 1/2 times this in a 2000k buffer.
  2942.  
  2943. For this variable to have any effect, you must do (require 'timer).
  2944.  
  2945. See also the variable `auto-save-interval', which controls auto-saving based
  2946. on the number of characters typed.
  2947.  
  2948. ------------------------------
  2949. baud-rate
  2950.  
  2951. The variable `baud-rate' has replaced the function `baud-rate'.
  2952.  
  2953. ------------------------------
  2954. before-change-function
  2955.  
  2956. Function to call before each text change.
  2957. Two arguments are passed to the function: the positions of
  2958. the beginning and end of the range of old text to be changed.
  2959. For an insertion, the beginning and end are at the same place.
  2960. No information is given about the length of the text after the change.
  2961. position of the change
  2962.  
  2963. While executing the before-change-function, changes to buffers do not
  2964. cause calls to any before-change-function or after-change-function.
  2965.  
  2966. ------------------------------
  2967. buffer-file-truename
  2968.  
  2969. The real name of the file visited in the current buffer, 
  2970. or nil if not visiting a file.  This is the result of passing 
  2971. buffer-file-name to the `truename' function.  Every buffer has 
  2972. its own value of this variable.  This variable is automatically 
  2973. maintained by the functions that change the file name associated 
  2974. with a buffer.
  2975.  
  2976. ------------------------------
  2977. buffers-menu-max-size
  2978.  
  2979. *Maximum number of entries which may appear on the "Buffers" menu.
  2980. If this is 10, then only the ten most-recently-selected buffers will be
  2981. shown.  If this is nil, then all buffers will be shown.  Setting this to
  2982. a large number or nil will slow down menu responsiveness.
  2983.  
  2984. ------------------------------
  2985. buffers-menu-switch-to-buffer-function
  2986.  
  2987. *The function to call to select a buffer from the buffers menu.
  2988. `switch-to-buffer' is a good choice, as is `pop-to-buffer'.
  2989.  
  2990. ------------------------------
  2991. complex-buffers-menu-p
  2992.  
  2993. *If true, the buffers menu will contain several commands, as submenus
  2994. of each buffer line.  If this is false, then there will be only one command:
  2995. select that buffer.
  2996.  
  2997. ------------------------------
  2998. create-screen-hook
  2999.  
  3000. Function or functions of one argument, called with each newly-created screen.
  3001.  
  3002. ------------------------------
  3003. current-menubar
  3004.  
  3005. The current menubar.  This may be buffer-local.
  3006.  
  3007. When the menubar is changed, the function `set-menubar-dirty-flag' has to
  3008. be called for the menubar to be updated on the screen.  See `set-menubar'
  3009. and `set-buffer-menubar'.
  3010.  
  3011. A menubar is a list of menus and menu-items.
  3012. A menu is a list of menu items, strings, and submenus.
  3013.  
  3014. The first element of a menu must be a string, which is the name of the
  3015. menu.  This is the string that will be displayed in the menubar, or in
  3016. the parent menu.  This string is not displayed in the menu itself.
  3017.  
  3018. A menu item is a vector of three or four elements:
  3019.  
  3020.  - the name of the menu item (a string);
  3021.  - the `callback' of that item;
  3022.  - whether this item is active (selectable);
  3023.  - and an optional string to append to the name.
  3024.  
  3025. If the `callback' of a menu item is a symbol, then it must name a command.
  3026. It will be invoked with `call-interactively'.  If it is a list, then it is
  3027. evaluated with `eval'.
  3028.  
  3029. The fourth element of a menu item is a convenient way of adding the name
  3030. of a command's ``argument'' to the menu, like ``Kill Buffer NAME''.
  3031.  
  3032. If an element of a menu (or menubar) is a string, then that string will be
  3033. presented in the menu (or menubar) as unselectable text.
  3034.  
  3035. If an element of a menu is a string consisting solely of hyphens, then that
  3036. item will be presented as a solid horizontal line.
  3037.  
  3038. If an element of a menu is a list, it is treated as a submenu.  The name of
  3039. that submenu (the first element in the list) will be  used as the name of
  3040. the item representing this menu on the parent.
  3041.  
  3042. If an element of a menubar is `nil', then it is used to represent the 
  3043. division between the set of menubar-items which are flushleft and those
  3044. which are flushright.  (Note: this isn't completely implemented yet.)
  3045.  
  3046. After the menubar is clicked upon, but before any menus are popped up,
  3047. the functions on the `activate-menubar-hook' are invoked to make changes 
  3048. to the menus and menubar.  This is intended to implement lazy alteration 
  3049. of the sensitivity of menu items.
  3050.  
  3051. The syntax, More precisely:
  3052.  
  3053.    form        :=  <something to pass to `eval'>
  3054.    command    :=  <a symbol or string, to pass to `call-interactively'>
  3055.    callback     :=  command | form
  3056.    active-p    :=  <t or nil, whether this thing is selectable>
  3057.    text        :=  <string, non selectable>
  3058.    name        :=  <string>
  3059.    argument    :=  <string>
  3060.    menu-item    :=  '['  name callback active-p [ argument ]  ']'
  3061.    menu        :=  '(' name [ menu-item | menu | text ]+ ')'
  3062.    partition    :=  'nil'
  3063.    menubar    :=  '(' [ menu-item | menu | text ]* [ partition ]
  3064.                 [ menu-item | menu | text ]*
  3065.              ')'
  3066.  
  3067. ------------------------------
  3068. current-mouse-event
  3069.  
  3070. The mouse-button event which invoked this command, or nil.
  3071. This is what (interactive "e") returns.
  3072.  
  3073. ------------------------------
  3074. default-directory-alist
  3075.  
  3076. Alist of major modes and their opinion on default-directory, as a
  3077. lisp expression to evaluate.  A resulting value of nil is ignored in
  3078. favor of default-directory.
  3079.  
  3080. ------------------------------
  3081. default-screen-name
  3082.  
  3083. The default name to assign to newly-created screens.
  3084. This can be overridden by arguments to `x-create-screen'.
  3085. This must be a string.
  3086.  
  3087. ------------------------------
  3088. describe-function-show-arglist
  3089.  
  3090. *If true, then describe-function will show its arglist if the function is
  3091. not an autoload.
  3092.  
  3093. ------------------------------
  3094. directory-abbrev-alist
  3095.  
  3096. *Alist of abbreviations for file directories.
  3097. A list of elements of the form (FROM . TO), each meaning to replace
  3098. FROM with TO when it appears in a directory name.
  3099. This replacement is done when setting up the default directory of a
  3100. newly visited file.  *Every* FROM string should start with \\` or ^.
  3101.  
  3102. Use this feature when you have directories which you normally refer to
  3103. via absolute symbolic links.  Make TO the name of the link, and FROM
  3104. the name it is linked to.
  3105.  
  3106. ------------------------------
  3107. display-buffer-function
  3108.  
  3109. If non-nil, function to call to handle display-buffer.
  3110. It will receive three args, the same args as display-buffer.
  3111.  
  3112. ------------------------------
  3113. enable-local-variables
  3114.  
  3115. *Control use of local-variables lists in files you visit.
  3116. The value can be t, nil or something else.
  3117. A value of t means local-variables lists are obeyed;
  3118. nil means they are ignored; anything else means query.
  3119.  
  3120. The command M-x normal-mode always obeys local-variables lists
  3121. and ignores this variable.
  3122.  
  3123. Note: this variable has replaced `inhibit-local-variables'.
  3124.  
  3125. ------------------------------
  3126. execution-path
  3127. Pathname of executable emacs program now running.
  3128.  
  3129. ------------------------------
  3130. find-file-compare-truenames
  3131.  
  3132. If this is true, then the find-file command will check the truenames
  3133. of all visited files when deciding whether a given file is already in
  3134. a buffer, instead of just the buffer-file-name.  This means that if you
  3135. attempt to visit another file which is a symbolic-link to a file which is
  3136. already in a buffer, the existing buffer will be found instead of a newly-
  3137. created one.  This works if some non-terminal component of the pathname is
  3138. a symbolic link as well, but doesn't work with hard links (nothing does.)
  3139.  
  3140. See also the variable find-file-use-truenames.
  3141.  
  3142. ------------------------------
  3143. find-file-use-truenames
  3144.  
  3145. If this is true, then a buffers visited file-name will always be
  3146. chased back to the real file; it will never be a symbolic link, and there
  3147. will never be a symbolic link anywhere in its directory path.
  3148. That is, the buffer-file-name and buffer-file-truename will be equal.
  3149. This doesn't work with hard links.
  3150.  
  3151. See also the variable find-file-compare-truenames.
  3152.  
  3153. ------------------------------
  3154. first-change-function
  3155.  
  3156. Function to call before changing a buffer which is unmodified.
  3157. The function is called, with no arguments, if it is non-nil.
  3158.  
  3159. ------------------------------
  3160. float-output-format
  3161.  
  3162. The format descriptor string that lisp uses to print floats.
  3163. This is a %-spec like those accepted by printf in C,
  3164. but with some restrictions.  It must start with the two characters %..
  3165. After that comes an integer precision specification,
  3166. and then a letter which controls the format.
  3167. The letters allowed are e, f and g.
  3168. Use e for exponential notation "DIG.DIGITSeEXPT"
  3169. Use f for decimal point notation "DIGITS.DIGITS".
  3170. Use g to choose the shorter of those two formats for the number at hand.
  3171. The precision in any of these cases is the number of digits following
  3172. the decimal point.  With f, a precision of 0 means to omit the
  3173. decimal point.  0 is not allowed with f or g.
  3174.  
  3175. A value of nil means to use %.16g.
  3176.  
  3177. Regardless of the value of float-output-format, a floating point number
  3178. will never be printed in such a way that it is ambiguous with an integer;
  3179. that is, a floating-point number will always be printed with a decimal
  3180. point and/or an exponent, even if the digits following the decimal point
  3181. are all zero.  This is to preserve read-equivalence.
  3182.  
  3183. ------------------------------
  3184. get-screen-for-buffer-default-screen-name
  3185. The default screen to select; see doc of `get-screen-for-buffer'.
  3186.  
  3187. ------------------------------
  3188. init-file-user
  3189.  
  3190. When the .emacs file is read, this says which users init file it is.
  3191. The value may be the null string or a string containing a users name.
  3192. If the value is a null string, it means that the init file was taken from
  3193. the user that originally logged in.
  3194.  
  3195. In all cases, (concat "~" init-file-user "/") evaluates to the
  3196. directory name of the directory where the .emacs file was looked for.
  3197.  
  3198. ------------------------------
  3199. internal-doc-file-name
  3200. Name of file containing documentation strings of built-in symbols.
  3201.  
  3202. ------------------------------
  3203. interrupt-char
  3204.  
  3205. Character which interrupts Emacs.
  3206. Do not setq this variable: use the function set-interrupt-character instead.
  3207. Depending on the system you are on, this may need to do magic like changing
  3208. interrupt handlers.
  3209.  
  3210. ------------------------------
  3211. invocation-name
  3212.  
  3213. Name of file used to invoke editing session.
  3214. This is the same as `(file-name-nondirectory execution-path)'.
  3215.  
  3216. ------------------------------
  3217. keymap-tick
  3218. Incremented for each change to any keymap.
  3219.  
  3220. ------------------------------
  3221. kill-emacs-hook
  3222. Run when kill-emacs is called.
  3223.  
  3224. ------------------------------
  3225. kill-hooks
  3226.  
  3227. If non-nil, this should be a function or functions of one argument which
  3228. are called with the string most recently added to the kill ring.  You can use
  3229. this to, for example, make the most recent kill become the X Clipboard
  3230. selection.
  3231.  
  3232. ------------------------------
  3233. last-command-event
  3234.  
  3235. Last keyboard or mouse button event that was part of a command.  This
  3236. variable is off limits: you may not set its value or modify the event that
  3237. is its value, as it is destructively modified by read-key-sequence.  If
  3238. you want to keep a pointer to this value, you must use copy-event.
  3239.  
  3240. ------------------------------
  3241. last-input-event
  3242.  
  3243. Last keyboard or mouse button event recieved.  This variable is off
  3244. limits: you may not set its value or modify the event that is its value, as
  3245. it is destructively modified by next-event.  If you want to keep a pointer
  3246. to this value, you must use copy-event.
  3247.  
  3248. ------------------------------
  3249. last-input-time
  3250.  
  3251. The time (in seconds since Jan 1, 1970) of the last-command-event,
  3252. represented as a cons of two 16-bit integers.  This is destructively
  3253. modified, so copy it if you want to keep it.
  3254.  
  3255. ------------------------------
  3256. list-buffers-identification
  3257.  
  3258. String used to identify this buffer, or a function of one argument
  3259. to generate such a string.  This variable is always buffer-local.
  3260.  
  3261. ------------------------------
  3262. mail-abbrev-mailrc-file
  3263. Name of file with mail aliases.   If nil, ~/.mailrc is used.
  3264.  
  3265. ------------------------------
  3266. map-screen-hook
  3267. Function to call when screen is mapped.  One arg, the screen.
  3268.  
  3269. ------------------------------
  3270. menubar-show-keybindings
  3271.  
  3272. If true, the menubar will display keyboard equivalents.
  3273. If false, only the command names will be displayed.
  3274.  
  3275. ------------------------------
  3276. menu-no-selection-hook
  3277.  
  3278. Function or functions to call when a menu or dialog box is dismissed
  3279. without a selecting having been made.
  3280.  
  3281. ------------------------------
  3282. minibuffer-confirm-incomplete
  3283.  
  3284. If true, then in contexts where completing-read allows answers which
  3285. are not valid completions, an extra RET must be typed to confirm the
  3286. response.  This is helpful for catching typos, etc.
  3287.  
  3288. ------------------------------
  3289. mode-motion-hook
  3290.  
  3291. Function or functions which are called whenever the mouse moves.
  3292. You should normally use this rather than `mouse-motion-handler', which 
  3293. does some additional window-system-dependent things.  This hook is local
  3294. to every buffer, and should normally be set up by major-modes which want
  3295. to use special highlighting.  Every time the mouse moves over a window,
  3296. the mode-motion-hook of the buffer of that window is run.
  3297.  
  3298. ------------------------------
  3299. mouse-enter-screen-hook
  3300.  
  3301. Function or functions to call when mouse enters a screen.  One arg, the screen.
  3302. Be careful not to make assumptions about the window manger's focus model.
  3303. In most cases, the `deselect-screen-hook' is more appropriate.
  3304.  
  3305. ------------------------------
  3306. mouse-leave-screen-hook
  3307.  
  3308. Function or functions to call when mouse leaves screen.  One arg, the screen.
  3309. Be careful not to make assumptions about the window manger's focus model.
  3310. In most cases, the `select-screen-hook' is more appropriate.
  3311.  
  3312. ------------------------------
  3313. mouse-motion-handler
  3314. Handler for motion events.  One arg, a motion event.
  3315. For most applications, you should use `mode-motion-hook' instead of this.
  3316.  
  3317. ------------------------------
  3318. next-line-extends-end-of-buffer
  3319.  
  3320. *If non-nil, when C-n is invoked on the last line of a buffer,
  3321. a newline character is inserted to create a new line.
  3322. If nil, C-n signals an `end-of-buffer' in that situation.
  3323.  
  3324. ------------------------------
  3325. pre-abbrev-expand-hook
  3326.  
  3327. Function or functions to be called before abbrev expansion is done.
  3328. This is the first thing that expand-abbrev does, and so this may change
  3329. the current abbrev table before abbrev lookup happens.
  3330.  
  3331. ------------------------------
  3332. pre-display-buffer-function
  3333.  
  3334. If non-nil, function that will be called from `display-buffer' as the
  3335. first action.  It will receive three args, the same arguments as 
  3336. `display-buffer' -- the buffer, a flag which if non-nil means that the
  3337. currently selected window is not acceptable, and a screen to use (or nil,
  3338. meaning unspecified.)  This function may be used to select an appropriate
  3339. screen for the buffer, for example.  See also the variable
  3340. `display-buffer-function', which may be used to completely replace
  3341. display-buffer.
  3342.  
  3343. ------------------------------
  3344. previous-screen: (screen miniscreen visible-only-p)
  3345.  
  3346. Return the previous screen in the screen list before SCREEN.
  3347. If MINISCREEN is non-nil, include the global-minibuffer-screen if it
  3348. has its own screen.
  3349. If VISIBLE-ONLY-P is non-nil, then cycle through the visible screens,
  3350. instead of all screens.
  3351.  
  3352. ------------------------------
  3353. print-level
  3354.  
  3355. Maximum depth of list nesting to print before abbreviating.
  3356. A value of nil means no limit.
  3357.  
  3358. ------------------------------
  3359. print-readably
  3360.  
  3361. If non-nil, then all objects will be printed in a readable form.
  3362. If an object has no readable representation, then an error is signalled.
  3363. When this is true, compiled-function objects will be written in #[...] form
  3364. instead of in #<byte-code [...]> form.  
  3365. Do not SET this variable; bind it instead.
  3366.  
  3367. ------------------------------
  3368. print-gensym
  3369.  
  3370. If non-nil, then uninterned symbols (those made with `make-symbol'
  3371. instead of `intern') will be preceeded by "#:", which tells the reader to
  3372. create a new symbol instead of interning.  Beware: the #: syntax creates a
  3373. new symbol each time it is seen, so if you print an object which contains
  3374. two pointers to the same uninterned symbol, `read' will not duplicate that
  3375. structure.
  3376.  
  3377. ------------------------------
  3378. revert-buffer-insert-file-contents-function
  3379.  
  3380. Function to use to insert contents when reverting this buffer.
  3381. Gets two args, first the nominal file name to use,
  3382. and second, t if reading the auto-save file.
  3383.  
  3384. ------------------------------
  3385. screen-default-alist
  3386.  
  3387. Alist of default values for screen creation, other than the first one.
  3388. These may be set in your init file, like this:
  3389.   (setq screen-default-alist ((width . 80) (height . 55)))
  3390. For values specific to the first Emacs screen, you must use X Resources.
  3391.  
  3392. ------------------------------
  3393. screen-icon-title-format
  3394.  
  3395. Controls the title of the icon corresponding to the selected screen.
  3396. See also the variable screen-title-format
  3397.  
  3398. ------------------------------
  3399. screen-title-format
  3400.  
  3401. Controls the title of the X window corresponding to the selected screen.
  3402. This is the same format as mode-line-format.
  3403.  
  3404. ------------------------------
  3405. search-caps-disable-folding
  3406.  
  3407. *If non-nil, upper case chars disable case fold searching.
  3408. This does not apply to "yanked" strings.  Default t.
  3409.  
  3410. ------------------------------
  3411. selection-converter-alist
  3412.  
  3413. An alist associating selection-types (such as STRING and TIMESTAMP) with
  3414. functions.  These functions will be called with three args: the name of the
  3415. selection (typically PRIMARY, SECONDARY, or CLIPBOARD); a desired type to
  3416. which the selection should be converted; and the local selection value
  3417. (whatever had been passed to x-own-selection).  These functions should
  3418. return the value to send to the X server (typically a string).  A return
  3419. value of nil means that the conversion could not be done.  A return value
  3420. which is the symbol NULL means that a side-effect was executed, and there
  3421. is no meaningful return value.
  3422.  
  3423. ------------------------------
  3424. shared-lisp-mode-map
  3425. Keymap for commands shared by all sorts of Lisp modes.
  3426.  
  3427. ------------------------------
  3428. sound-alist
  3429.  
  3430. An alist associating symbols with strings of audio-data.
  3431. When beep or ding is called with one of the symbols, the associated
  3432. sound data will be played instead of the standard beep.  This only works
  3433. if you are logged in on the console of a SparcStation.
  3434.  
  3435. Elements of this list should be of one of the following forms:
  3436.  
  3437.    ( symbol . string-or-symbol )
  3438.    ( symbol integer string-or-symbol )
  3439.  
  3440. If the string-or-symbol is a string, then it should contain raw sound data,
  3441. the contents of a .au file.  If it is a symbol, then that means that this
  3442. element is an alias for some other element, and the sound-player will look
  3443. for that next.  If the integer is provided, it is the volume at which the
  3444. sound should be played, from 0 to 100.  
  3445.  
  3446. If an element of this alist begins with the symbol default, then that sound
  3447. will be used when no other sound is appropriate.
  3448.  
  3449. The symbol t in place of a sound-string means to use the default X beep.
  3450. In this way, you can define beep-types to have different volumes even when
  3451. not running on the console of a Sun4.
  3452.  
  3453. You should probably add things to this list by calling the function
  3454. load-sound-file.
  3455.  
  3456. The following beep-types are used by Emacs itself:
  3457.  
  3458.     auto-save-error    when an auto-save does not succeed
  3459.     command-error    when the emacs command loop catches an error
  3460.     undefined-key    when you type a key that is undefined
  3461.     undefined-click    when you use an undefined mouse-click combination
  3462.     no-completion    during completing-read
  3463.     y-or-n-p        when you type something other than y or n
  3464.     yes-or-no-p      when you type something other than yes or no
  3465.  
  3466. Other lisp packages may use other beep types, but these are the ones that
  3467. the C kernel of Emacs uses.
  3468.  
  3469. ------------------------------
  3470. tag-table-alist
  3471.  
  3472. *A list which determines which tags files should be active for a 
  3473. given buffer.  This is not really an association list, in that all 
  3474. elements are checked.  The CAR of each element of this list is a 
  3475. pattern against which the buffers file name is compared; if it 
  3476. matches, then the CDR of the list should be the name of the tags
  3477. table to use.  If more than one element of this list matches the
  3478. buffers file name, then all of the associated tags tables will be
  3479. used.  Earlier ones will be searched first.
  3480.  
  3481. If the CAR of elements of this list are strings, then they are treated
  3482. as regular-expressions against which the file is compared (like the
  3483. auto-mode-alist).  If they are not strings, then they are evaluated.
  3484. If they evaluate to non-nil, then the current buffer is considered to
  3485. match.
  3486.  
  3487. If the CDR of the elements of this list are strings, then they are
  3488. assumed to name a TAGS file.  If they name a directory, then the string
  3489. "TAGS" is appended to them to get the file name.  If they are not 
  3490. strings, then they are evaluated, and must return an appropriate string.
  3491.  
  3492. For example:
  3493.   (setq tag-table-alist
  3494.     (("/usr/src/public/perl/" . "/usr/src/public/perl/perl-3.0/")
  3495.      ("\\.el$" . "/usr/local/emacs/src/")
  3496.      ("/jbw/gnu/" . "/usr15/degree/stud/jbw/gnu/")
  3497.      ("" . "/usr/local/emacs/src/")
  3498.      ))
  3499.  
  3500. This means that anything in the /usr/src/public/perl/ directory should use
  3501. the TAGS file /usr/src/public/perl/perl-3.0/TAGS; and file ending in .el should
  3502. use the TAGS file /usr/local/emacs/src/TAGS; and anything in or below the
  3503. directory /jbw/gnu/ should use the TAGS file /usr15/degree/stud/jbw/gnu/TAGS.
  3504. A file called something like "/usr/jbw/foo.el" would use both the TAGS files
  3505. /usr/local/emacs/src/TAGS and /usr15/degree/stud/jbw/gnu/TAGS (in that order)
  3506. because it matches both patterns.
  3507.  
  3508. If the buffer-local variable buffer-tag-table is set, then it names a tags
  3509. table that is searched before all others when find-tag is executed from this
  3510. buffer.
  3511.  
  3512. If there is a file called "TAGS" in the same directory as the file in 
  3513. question, then that tags file will always be used as well (after the
  3514. buffer-tag-table but before the tables specified by this list.)
  3515.  
  3516. If the variable tags-file-name is set, then the tags file it names will apply
  3517. to all buffers (for backwards compatibility.)  It is searched first.
  3518.  
  3519. ------------------------------
  3520. tags-always-build-completion-table
  3521.  
  3522. *If t, tags files will always be added to the completion table without 
  3523. asking first, regardless of the size of the tags file.
  3524.  
  3525. ------------------------------
  3526. terminal-screen
  3527. The initial screen-object, which represents Emacs's stdout.
  3528.  
  3529. ------------------------------
  3530. unmap-screen-hook
  3531. Function to call when screen is unmapped.  One arg, the screen.
  3532.  
  3533. ------------------------------
  3534. unread-command-event
  3535.  
  3536. Set this to an event object to simulate the reciept of an event from
  3537. the user.  Normally this is nil.
  3538.  
  3539. ------------------------------
  3540. user-real-name
  3541. The users name, base upon the real uid.
  3542.  
  3543. ------------------------------
  3544. write-contents-hooks
  3545.  
  3546. List of functions to be called before writing out a buffer to a file.
  3547. If one of them returns non-nil, the file is considered already written
  3548. and the rest are not called.
  3549. These hooks are considered to pertain to the buffer's contents,
  3550. not to the particular visited file; thus, `set-visited-file-name' does
  3551. not clear this variable, but changing the major mode does clear it.
  3552. See also `write-file-hooks'.
  3553.  
  3554. ------------------------------
  3555. x-allow-sendevents
  3556.  
  3557. *Non-nil means to allow synthetic events.  Nil means they are ignored.
  3558. Beware: allowing Emacs to process SendEvents opens a big security hole.
  3559.  
  3560. ------------------------------
  3561. x-backing-store
  3562.  
  3563. The backing store capability of this screen.
  3564. Values can be the symbols Always, WhenMapped, or NotUseful.
  3565.  
  3566. ------------------------------
  3567. x-bitmap-file-path
  3568.  
  3569. A list of the directories in which X bitmap files may be found.
  3570. If nil, this is initialized from the "*bitmapFilePath" resource.
  3571.  
  3572. ------------------------------
  3573. x-emacs-application-class
  3574.  
  3575. The X application class of the Emacs process.
  3576. This controls, among other things, the name of the `app-defaults' file
  3577. that emacs will use.  For changes to this variable to take effect, they
  3578. must be made before the connection to the X server is initialized, that is,
  3579. this variable may only be changed before emacs is dumped, or by setting it
  3580. in the file lisp/term/x-win.el.
  3581.  
  3582. ------------------------------
  3583. x-lost-selection-hooks
  3584.  
  3585. A function or functions to be called after the X server has notified us
  3586. that we have lost the selection.  The function(s) will be called with one
  3587. argument, a symbol naming the selection (typically PRIMARY, SECONDARY, or
  3588. CLIPBOARD.)
  3589.  
  3590. ------------------------------
  3591. x-mode-pointer-shape
  3592.  
  3593. *The shape of the mouse-pointer when over the modeline.
  3594. If this is nil, then either `x-nontext-pointer-shape' or `x-pointer-shape'
  3595. will be used.
  3596.  
  3597. ------------------------------
  3598. x-nontext-pointer-shape
  3599.  
  3600. *The shape of the mouse-pointer when over a buffer, but not over text.  
  3601. If this is nil, then `x-pointer-shape' is used.
  3602.  
  3603. ------------------------------
  3604. x-pointer-background-color
  3605. *The background color of the mouse pointer.
  3606.  
  3607. ------------------------------
  3608. x-pointer-foreground-color
  3609. *The foreground color of the mouse pointer.
  3610.  
  3611. ------------------------------
  3612. x-pointer-shape
  3613. *The shape of the mouse-pointer when over text.
  3614.  
  3615. This string may be any of the standard cursor names from appendix B 
  3616. of the Xlib manual (also known as the file <X11/cursorfont.h>) minus 
  3617. the XC_ prefix, or it may be a font name and glyph index of the form 
  3618. "FONT fontname index [[font] index]", or it may be the name of a
  3619. bitmap file acceptable to XmuLocateBitmapFile().  If it is a bitmap
  3620. file, and if a bitmap file whose name is the name of the cursor with
  3621. "msk" exists, then it is used as the mask.  For example, a pair of
  3622. files may be named "cursor.xbm" and "cursor.xbmmsk".
  3623.  
  3624. ------------------------------
  3625. x-save-under
  3626. Non-nil means this X screen supports the SaveUnder feature.
  3627.  
  3628. ------------------------------
  3629. x-screen-defaults
  3630.  
  3631. Alist of default screen-creation parameters for X-window screens.
  3632. These override what is specified in ~/.Xdefaults but are overridden
  3633. by the arguments to the particular call to x-create-screen.
  3634.  
  3635. ------------------------------
  3636. x-selection-pointer-shape
  3637. *The shape of the mouse-pointer when over a selectable text region.
  3638. Default: "top_left_arrow".
  3639.  
  3640. ------------------------------
  3641. x-sent-selection-hooks
  3642.  
  3643. A function or functions to be called after we have responded to some
  3644. other clients request for the value of a selection that we own.  The
  3645. function(s) will be called with four arguments:
  3646.   - the name of the selection (typically PRIMARY, SECONDARY, or CLIPBOARD);
  3647.   - the name of the selection-type which we were requested to convert the
  3648.     selection into before sending (for example, STRING or LENGTH);
  3649.   - and whether we successfully transmitted the selection.
  3650. We might have failed (and declined the request) for any number of reasons,
  3651. including being asked for a selection that we no longer own, or being asked
  3652. to convert into a type that we dont know about or that is inappropriate.
  3653. This hook doesn't let you change the behavior of Emacs's selection replies,
  3654. it merely informs you that they have happened.
  3655.  
  3656. ------------------------------
  3657. zmacs-activate-region-hook
  3658.  
  3659. Function or functions called when the region becomes active;
  3660. see the variable zmacs-regions.
  3661.  
  3662. ------------------------------
  3663. zmacs-region-stays
  3664.  
  3665. Commands which do not wish to affect whether the region is currently
  3666. hilighted should set this to t.  Normally, the region is turned off after
  3667. executing each command that did not explicitly turn it on with the function
  3668. zmacs-activate-region. Setting this to true lets a command be non-intrusive.
  3669. See the variable zmacs-regions.
  3670.  
  3671. ------------------------------
  3672. zmacs-regions
  3673.  
  3674. *Whether LISPM-style active regions should be used.
  3675. This means that commands which operate on the region (the area between the
  3676. point and the mark) will only work while the region is in the ``active''
  3677. state, which is indicated by hilighting.  Executing most commands causes
  3678. the region to not be in the active state, so (for example) C-w will only
  3679. work immediately after activating the region.
  3680.  
  3681. More specifically:
  3682.  
  3683.  - Commands which operate on the region only work if the region is active.
  3684.  - Only a very small set of commands cause the region to become active:
  3685.    Those commands whose semantics are to mark an area, like mark-defun.
  3686.  - The region is deactivated after each command that is executed, except that:
  3687.  - "Motion" commands do not change whether the region is active or not.
  3688.  
  3689. set-mark-command (C-SPC) pushes a mark and activates the region.  Moving the
  3690. cursor with normal motion commands (C-n, C-p, etc) will cause the region
  3691. between point and the recently-pushed mark to be highlighted.  It will
  3692. remain highlighted until some non-motion comand is executed.
  3693.  
  3694. exchange-point-and-mark (C-x C-x) activates the region.  So if you mark a
  3695. region and execute a command that operates on it, you can reactivate the
  3696. same region with C-x C-x (or perhaps C-x C-x C-x C-x) to operate on it
  3697. again.
  3698.  
  3699. Generally, commands which push marks as a means of navigation (like
  3700. beginning-of-buffer and end-of-buffer (M-< and M->)) do not activate the
  3701. region.  But commands which push marks as a means of marking an area of
  3702. text (like mark-defun (M-C-h), mark-word (M-@) or mark-whole-buffer (C-x h))
  3703. do activate the region.
  3704.  
  3705. ------------------------------
  3706. zmacs-deactivate-region-hook
  3707.  
  3708. Function or functions called when the region becomes inactive;
  3709. see the variable zmacs-regions.
  3710.  
  3711. ------------------------------
  3712. zmacs-update-region-hook
  3713.  
  3714. Function or functions called when the active region changes.
  3715. This is called after each command that sets region-stays to t.
  3716. See the variable zmacs-regions.
  3717.  
  3718.  
  3719. Changed Functions:
  3720. ==================
  3721.  
  3722. baud-rate: ()
  3723. The function `baud-rate' has been replaced by the variable `baud-rate'
  3724.  
  3725. ------------------------------
  3726. beep: (&optional arg sound)
  3727.  
  3728. Beep, or flash the screen.
  3729. Also, unless an argument is given,
  3730. terminate any keyboard macro currently executing.
  3731. When called from lisp, the second argument is what sound to make.
  3732.  
  3733. ------------------------------
  3734. compare-windows: (ignore-whitespace)
  3735.  
  3736. Compare text in current window with text in next window.
  3737. Compares the text starting at point in each window,
  3738. moving over text in each one as far as they match.
  3739.  
  3740. A prefix arg means ignore changes in whitespace.
  3741. The variable compare-windows-whitespace controls how whitespace is skipped.
  3742.  
  3743. If compare-ignore-case is non-nil, changes in case are also ignored.
  3744.  
  3745. ------------------------------
  3746. current-time-string: (&optional arg)
  3747.  
  3748. Return the current time, as a human-readable string.
  3749. Programs can use it too, since the number of columns in each field is fixed.
  3750. The format is Sun Sep 16 01:03:52 1973.
  3751. If the optional argument is non-nil, it must be a cons of two integers, which
  3752. are the upper and lower 16 bits of a time in seconds (such as the value 
  3753. returned by the current-time-seconds function.
  3754. In a future Emacs version, the time zone may be added at the end,
  3755. if we can figure out a reasonably easy way to get that information.
  3756.  
  3757.  
  3758. ------------------------------
  3759. define-key: (keymap keys def)
  3760.  
  3761. Args KEYMAP, KEYS, DEF.  Define key sequence KEYS, in KEYMAP, as DEF.
  3762. KEYMAP is a keymap object.
  3763. KEYS is the sequence of keystrokes to bind, described below.
  3764. DEF is anything that can be a key's definition:
  3765.  nil (means key is undefined in this keymap);
  3766.  a command (a Lisp function suitable for interactive calling);
  3767.  a string or key sequence vector (treated as a keyboard macro);
  3768.  a keymap (to define a prefix key);
  3769.  a symbol; when the key is looked up, the symbol will stand for its
  3770.     function definition, that should at that time be one of the above,
  3771.     or another symbol whose function definition is used, and so on.
  3772.  a cons (STRING . DEFN), meaning that DEFN is the definition
  3773.     (DEFN should be a valid definition in its own right);
  3774.  or a cons (KEYMAP . CHAR), meaning use definition of CHAR in map KEYMAP.
  3775.  
  3776. Contrary to popular belief, the world is not ASCII.  When running under a
  3777. window manager, Emacs can tell the difference between, for example, the
  3778. keystrokes control-h, control-shift-h, and backspace.  You can, in fact,
  3779. bind different commands to each of these.
  3780.  
  3781. A `key sequence' is a set of keystrokes.  A `keystroke' is a keysym and some
  3782. set of modifiers (such as control and meta).  A `keysym' is what is printed
  3783. on the keys on your keyboard.
  3784.  
  3785. A keysym may be represented by a symbol, or (if and only if it is equivalent
  3786. to a printing ASCII character) by its ASCII code.  The `A' key may be
  3787. represented by the symbol `A' or by the number 65.  The `break' key may be
  3788. represented only by the symbol `break'.
  3789.  
  3790. A keystroke may be represented by a list: the last element of the list is
  3791. the key (a symbol or number, as above) and the preceding elements are the
  3792. symbolic names of modifier keys (control, meta, super, hyper, and shift.)
  3793. Thus, the sequence control-b is represented by the forms `(control b)' 
  3794. and `(control 98)'.  A keystroke may also be represented by an event object,
  3795. as returned by the `next-command-event' and `read-key-sequence' functions.
  3796.  
  3797. Note that in this context, the keystroke `control-b' is *not* represented
  3798. by the number 2 (the ASCII code for ^B).  See below.
  3799.  
  3800. The `shift' modifier is somewhat of a special case.  You should not (and
  3801. cannot) use `(meta shift a)' to mean `(meta A)', since for characters that
  3802. have printing ASCII equivalents, the state of the shift key is implicit in
  3803. the keysym (a vs. A).  You also cannot say `(shift =)' to mean `+', as that
  3804. sort of thing varies from keyboard to keyboard.  The shift modifier is for
  3805. use only with characters that do not have a second keysym on the same key,
  3806. such as `backspace' and `tab'.
  3807.  
  3808. A key sequence is a vector of keystrokes.  As a degenerate case, elements
  3809. of this vector may also be keysyms if they have no modifiers.  That is,
  3810. the `A' keystroke is represented by all of these forms:
  3811.     A    65    (A)    (65)    [A]    [65]    [(A)]    [(65)]
  3812. the `control-a' keystroke is represented by these forms:
  3813.     (control A)    (control 65)    [(control A)]    [(control 65)]
  3814. the key sequence `control-c control-a' is represented by these forms:
  3815.     [(control c) (control a)]    [(control 99) (control 65)]
  3816.  
  3817. Mouse button clicks work just like keypresses: (control button1) means
  3818. pressing the left mouse button while holding down the control key.
  3819. [(control c) (shift button3)] means control-c, hold shift, click right.
  3820.  
  3821. Commands may be bound to the mouse-button up-stroke rather than the down-
  3822. stroke as well.  `button1' means the down-stroke, and `button1up' means the
  3823. up-stroke.  Different commands may be bound to the up and down strokes,
  3824. though that is probably not what you want, so be careful.
  3825.  
  3826. For backward compatibility, a key sequence may also be represented by a 
  3827. string.  In this case, it represents the key sequence(s) that would
  3828. produce that sequence of ASCII characters in a purely ASCII world.  For 
  3829. example, a string containing the ASCII backspace character, "\^H", would
  3830. represent two key sequences: `(control h)' and `backspace'.  Binding a
  3831. command to this will actually bind both of those key sequences.  Likewise 
  3832. for the following pairs:
  3833.  
  3834.         control h    backspace
  3835.         control i       tab
  3836.         control m       return
  3837.         control j       linefeed
  3838.         control [       escape
  3839.         control @    control space
  3840.  
  3841. After binding a command to two key sequences with a form like
  3842.  
  3843.     (define-key global-map "\^X\^I" 'command-1)
  3844.  
  3845. it is possible to redefine only one of those sequences like so:
  3846.  
  3847.     (define-key global-map [(control x) (control i)] 'command-2)
  3848.     (define-key global-map [(control x) tab] 'command-3)
  3849.  
  3850. Of course, all of this applies only when running under a window system.  If
  3851. you're talking to Emacs through an ASCII-only channel, you don't get any of
  3852. these features.
  3853.  
  3854. ------------------------------
  3855. describe-key: (key)
  3856.  
  3857. Display documentation of the function KEY invokes.  
  3858. KEY is a string, or vector of events.  When called interactvely, key may
  3859. also be a menu selection.
  3860.  
  3861. ------------------------------
  3862. directory-files: (dirname &optional full match nosort files-only)
  3863.  
  3864. Return a list of names of files in DIRECTORY.
  3865. There are four optional arguments:
  3866. If FULL is non-nil, absolute pathnames of the files are returned.
  3867. If MATCH is non-nil, only pathnames containing that regexp are returned.
  3868. If NOSORT is non-nil, the list is not sorted--its order is unpredictable.
  3869.  NOSORT is useful if you plan to sort the result yourself.
  3870. If FILES-ONLY is the symbol t, then only the "files" in the directory
  3871.  will be returned; subdirectories will be excluded.  If FILES-ONLY is not
  3872.  nil and not t, then only the subdirectories will be returned.  Otherwise,
  3873.  if FILES-ONLY is nil (the default) then both files and subdirectories will
  3874.  be returned.
  3875.  
  3876. ------------------------------
  3877. display-buffer: (buffer &optional not_this_window_p on_screen)
  3878.  
  3879. Make BUFFER appear in some window on the current screen, but don't select it.
  3880. BUFFER can be a buffer or a buffer name.
  3881. If BUFFER is shown already in some window in the current screen, just uses
  3882.  that one, unless the window is the selected window and NOT_THIS_WINDOW_P
  3883.  is non-nil.
  3884. If ON_SCREEN is non-nil, display on that screen instead of the current
  3885.  screen (or the dedicated screen).
  3886. If BUFFER has a dedicated screen, display on that screen instead of the
  3887.  current screen, unless ON_SCREEN was specified.
  3888. If pop-up-windows is non-nil, and the buffer is not visible in some window
  3889.  on the target screen, then windows will be split (a new window will be
  3890.  created) if there is room.  Otherwise, the least-recently-used window will
  3891.  be reused.
  3892. Returns the window displaying BUFFER.
  3893.  
  3894. ------------------------------
  3895. exit-minibuffer: ()
  3896.  
  3897. Terminate this minibuffer argument.
  3898. If minibuffer-confirm-incomplete is true, and we are in a completing-read
  3899. of some kind, and the contents of the minibuffer is not an existing
  3900. completion, requires an additional RET before the minibuffer will be exited
  3901. (assuming that RET was the character that invoked this command: the character
  3902. in question must be typed again).
  3903.  
  3904. The function `expand-mail-aliases' is obsolete and has been removed.
  3905.  
  3906. ------------------------------
  3907. find-tag: (tagname &optional other-window)
  3908.  
  3909. *Find tag whose name contains TAGNAME.
  3910.  Selects the buffer that the tag is contained in
  3911. and puts point at its definition.
  3912.  If TAGNAME is a null string, the expression in the buffer
  3913. around or before point is used as the tag name.
  3914.  If called interactively with a numeric argument, searches for the next tag
  3915. in the tag table that matches the tagname used in the previous find-tag.
  3916.  If second arg OTHER-WINDOW is non-nil, uses another window to display
  3917. the tag.
  3918.  
  3919. Multiple active tags tables and completion are supported.
  3920.  
  3921. Variables of note:
  3922.  
  3923.   tag-table-alist        controls which tables apply to which buffers
  3924.   tags-file-name        a default tags table
  3925.   tags-build-completion-table   controls completion behavior
  3926.   buffer-tag-table        another way of specifying a buffer-local table
  3927.   make-tags-files-invisible    whether tags tables should be very hidden
  3928.   tag-mark-stack-max        how many tags-based hops to remember
  3929.  
  3930. The meaning of the %s directive in `format' has slightly changed:
  3931. %s means print a string argument.  Actually, prints any object, with princ.
  3932. %S means print any object as an s-expression (using prin1).
  3933.  
  3934. ------------------------------
  3935. format: (arg1 &rest args)
  3936.  
  3937. %s means print strings using `princ' and other objects using `prin1'.
  3938. %S means print all objects using `prin1' (including strings.)
  3939.  
  3940. [%s retains the (undocumented) behavior of v18.  %S is new.]
  3941.  
  3942. ------------------------------
  3943. get-buffer-window: (buffer &optional screen)
  3944.  
  3945. Return a window currently displaying BUFFER, or nil if none.
  3946. Only the selected screen is searched; if the optional second argument
  3947. SCREEN is non-nil, then that screen is searched instead.  If SCREEN is t,
  3948. then all screens are searched.
  3949.  
  3950. ------------------------------
  3951. interactive: (args)
  3952.  
  3953. There are some new `interactive' codes:
  3954.  
  3955. e -- Last mouse event.
  3956.  
  3957. In addition, if the string begins with *
  3958.  then an error is signaled if the buffer is read-only.
  3959.  This happens before reading any arguments.
  3960. If the string begins with @, then the window the mouse is over is selected
  3961.  before anything else is done.  You may use both @ and *;
  3962. they are processed in the order that they appear.
  3963.  
  3964. ------------------------------
  3965. isearch-forward: (&optional regexp-p)
  3966.  
  3967. Do incremental search forward.
  3968. With a prefix argument, do an incremental regular expression search instead.
  3969.  
  3970. As you type characters, they add to the search string and are found.
  3971. The following non-printing keys are bound in `isearch-mode-map'.  
  3972.  
  3973. Type DEL to cancel characters from end of search string.
  3974. Type RET to exit, leaving point at location found.
  3975. Type LFD (C-j) to match end of line.
  3976. Type C-s to search again forward, C-r to search again backward.
  3977. Type C-w to yank word from buffer onto end of search string and search for it.
  3978. Type C-y to yank rest of line onto end of search string and search for it.
  3979. Type C-q to quote control character to search for it.
  3980. Type M-SPC to match all whitespace chars in regexp.
  3981. C-g while searching or when search has failed cancels input back to what has
  3982.  been found successfully.
  3983. C-g when search is successful aborts and moves point to starting point.
  3984.  
  3985. Also supported is a search ring of the previous 16 search strings.
  3986. Type M-n to search for the next item in the search ring.
  3987. Type M-p to search for the previous item in the search ring.
  3988. Type M-TAB to complete the search string using the search ring.
  3989.  
  3990. The above keys are bound in the isearch-mode-map.  To change the keys which
  3991.  are special to isearch-mode, simply change the bindings in that map.
  3992.  
  3993. Other control and meta characters terminate the search
  3994.  and are then executed normally (depending on `search-exit-option').
  3995.  
  3996. If this function is called non-interactively, it does not return to
  3997. the calling function until the search is done.
  3998.  
  3999. ------------------------------
  4000. kill-emacs: (&optional arg)
  4001.  
  4002. Exit the Emacs job and kill it.  Ask for confirmation, without argument.
  4003. If ARG is an integer, return ARG as the exit program code.
  4004. If ARG is a  string, stuff it as keyboard input.
  4005.  
  4006. The value of kill-emacs-hook, if not void,
  4007. is a list of functions (of no args),
  4008. all of which are called before Emacs is actually killed.
  4009.  
  4010. ------------------------------
  4011. local-key-binding: (keys)
  4012.  
  4013. Return the binding for command KEYS in current local keymap only.
  4014. KEYS is a string, a vector of events, or a vector of key-description lists
  4015. as described in the documentation for the define-key function.
  4016. The binding is probably a symbol with a function definition.
  4017.  
  4018. ------------------------------
  4019. local-set-key: (keys function)
  4020.  
  4021. Give KEY a local binding as COMMAND.
  4022. COMMAND is a symbol naming an interactively-callable function.
  4023. KEYS is a string, a vector of events, or a vector of key-description lists
  4024. as described in the documentation for the define-key function.
  4025. The binding goes in the current buffers local map,
  4026. which is shared with other buffers in the same major mode.
  4027.  
  4028. ------------------------------
  4029. local-unset-key: (keys)
  4030.  
  4031. Remove local binding of KEY.
  4032. KEYS is a string, a vector of events, or a vector of key-description lists
  4033. as described in the documentation for the define-key function.
  4034.  
  4035. ------------------------------
  4036. lookup-key: (keymap keys)
  4037.  
  4038. In keymap KEYMAP, look up key sequence KEYS.  Return the definition.
  4039. nil means undefined.  See doc of define-key for kinds of definitions
  4040. and key-sequence specifications.
  4041. Number as value means KEYS is "too long";
  4042. that is, characters in it except for the last one
  4043. fail to be a valid sequence of prefix characters in KEYMAP.
  4044. The number is how many characters at the front of KEYS
  4045. it takes to reach a non-prefix command.
  4046.  
  4047. ------------------------------
  4048. make-sparse-keymap: ()
  4049.  
  4050. Construct and return a new keymap object.  All entries in it are nil,
  4051. meaning "command undefined".  The only difference between this function
  4052. and make-keymap is that this function returns a "smaller" keymap (one
  4053. that is expected to contain less entries.)  As keymaps dynamically resize,
  4054. the distinction is not great.
  4055.  
  4056. ------------------------------
  4057. mark: (&optional inactive-p)
  4058.  
  4059. Return this buffers mark value as integer, or nil if no mark.
  4060.  
  4061. If zmacs-regions is true, then this returns nil unless the region is
  4062. currently in the active (hilighted) state.  With an argument of t, this
  4063. returns the mark (if there is one) regardless of the active-region state.
  4064. You should *generally* not use the mark unless the region is active, if
  4065. the user has expressed a preference for the active-region model.
  4066.  
  4067. If you are using this in an editing command, you are most likely making
  4068. a mistake; see the documentation of set-mark.
  4069.  
  4070. ------------------------------
  4071. mark-marker: (&optional inactive_p)
  4072.  
  4073. Return this buffers mark, as a marker object.
  4074. If `zmacs-regions' is true, then this returns nil unless the region is
  4075. currently in the active (hilighted) state.  With an argument of t, this
  4076. returns the mark (if there is one) regardless of the zmacs-region state.
  4077. You should *generally* not use the mark unless the region is active, if
  4078. the user has expressed a preference for the zmacs-region model.
  4079. Watch out!  Moving this marker changes the mark position.
  4080. If you set the marker not to point anywhere, the buffer will have no mark.
  4081.  
  4082. ------------------------------
  4083. next-window: (&optional window mini all_screens)
  4084.  
  4085. Return next window after WINDOW in canonical ordering of windows.
  4086. Optional second arg MINIBUF t means count the minibuffer window
  4087. even if not active.  If MINIBUF is neither t nor nil it means
  4088. not to count the minibuffer even if it is active.
  4089. Optional third arg ALL-SCREENS t means include all windows in all screens;
  4090. otherwise cycle within the selected screen, with the exception that if a
  4091. global minibuffer screen is in use, all screens are used.
  4092.  
  4093. ------------------------------
  4094. other-buffer: (&optional buffer screen)
  4095.  
  4096. Return most recently selected buffer other than BUFFER.
  4097. Buffers not visible in windows are preferred to visible buffers.
  4098. If no other buffer exists, the buffer *scratch* is returned.
  4099. If BUFFER is omitted or nil, some interesting buffer is returned.
  4100. The ordering is for this screen; If second optional argument SCREEN
  4101. is provided, then the ordering is for that screen.  If the second arg
  4102. is t, then the global ordering is returned.
  4103.  
  4104. ------------------------------
  4105. other-window: (n &optional all_screens)
  4106.  
  4107. Select the ARGth different window on this screen.
  4108. All windows on current screen are arranged in a cyclic order.
  4109. This command selects the window ARG steps away in that order.
  4110. A negative ARG moves in the opposite order.  If the optional second
  4111. argument ALL_SCREENS is non-nil, cycle through all screens.
  4112.  
  4113. ------------------------------
  4114. point-marker: (&optional dont_copy_p)
  4115.  
  4116. Return value of point, as a marker object.
  4117. This marker is a copy; you may modify it with reckless abandon.
  4118. If the argument to this function is non-nil, then it returns the real
  4119. point-marker; modifying the position of this marker willl move point.
  4120. It is illegal to change the buffer of it, or make it point nowhere.
  4121.  
  4122. ------------------------------
  4123. read: (&optional readcharfun)
  4124.  
  4125. The `read' function no longer consumes the whitespace following an expression
  4126. after reading it.  Point will be left immediately after the last character of
  4127. the token that was read, instead of after any whitespace following the last
  4128. character of the token.
  4129.  
  4130. ------------------------------
  4131. read-char: ()
  4132.  
  4133. Read a character from the command input (keyboard or macro).
  4134. If a mouse click is detected, an error is signalled.  The character typed
  4135. is returned as an ASCII value.  This is most likely the wrong thing for you
  4136. to be using: consider using the `next-command-event' function instead.
  4137.  
  4138. ------------------------------
  4139. read-key-sequence: (prompt)
  4140.  
  4141. Read a sequence of keystrokes or mouse clicks and return a vector of the
  4142. event objects read.  The vector is newly created, but the event objects are
  4143. reused: if you want to hold a pointer to them beyond the next call to this
  4144. function, you must copy them first.
  4145.  
  4146. The sequence read is sufficient to specify a non-prefix command starting
  4147. from the current local and global keymaps.  A C-g typed while in this
  4148. function is treated like any other character, and quit-flag is not set.
  4149. One arg, PROMPT, is a prompt string, or nil meaning do not prompt specially.
  4150.  
  4151. If the user selects a menu item while we are prompting for a key-sequence,
  4152. the returned value will be a vector of a single menu-selection event.
  4153. An error will be signalled if you pass this value to lookup-key or a
  4154. related function.
  4155.  
  4156. ------------------------------
  4157. recent-keys: ()
  4158.  
  4159. Return vector of last 100 keyboard or mouse button events read.
  4160. This copies 100 event objects and a vector; it is safe to keep and modify
  4161. them.
  4162.  
  4163. ------------------------------
  4164. redraw-screen: (screen)
  4165. Clear screen SCREEN and output again what is supposed to appear on it.
  4166.  
  4167. ------------------------------
  4168. this-command-keys: ()
  4169.  
  4170. Returns a vector of the keyboard or mouse button events that were used
  4171. to invoke this command.  This copies the vector and the events; it is safe
  4172. to keep and modify them.
  4173.  
  4174. ------------------------------
  4175. visit-tags-table: (file)
  4176.  
  4177. Tell tags commands to use tags table file FILE first.
  4178. FILE should be the name of a file created with the etags program.
  4179. A directory name is ok too; it means file TAGS in that directory.
  4180. This function is largely obsoleted by the variable tag-table-alist.
  4181.  
  4182. ------------------------------
  4183. write-region: (start end filename &optional append visit)
  4184.  
  4185. Write current region into specified file.
  4186. When called from a program, takes three arguments:
  4187. START, END and FILENAME.  START and END are buffer positions.
  4188. Optional fourth argument APPEND if non-nil means
  4189.   append to existing file contents (if any).
  4190. Optional fifth argument VISIT if t means
  4191.   set the last-save-file-modtime of buffer to this files modtime
  4192.   and mark buffer not modified.
  4193. If VISIT is neither t nor nil, it means do not print
  4194.   the "Wrote file" message.
  4195. Kludgy feature: if START is a string, then that string is written
  4196. to the file, instead of any buffer contents, and END is ignored.
  4197.  
  4198.  
  4199. Changed Variables:
  4200. ==================
  4201.  
  4202. auto-fill-hook
  4203. The variable `auto-fill-hook' has been renamed `auto-fill-function'
  4204.  
  4205. ------------------------------
  4206. blink-paren-hook
  4207. The variable `blink-paren-hook' has been renamed `blink-paren-function'
  4208.  
  4209. ------------------------------
  4210. ctl-arrow
  4211.  
  4212. *Non-nil means display control chars with uparrow.
  4213. Nil means use backslash and octal digits.
  4214. Non-t and non-nil means display 8-bit characters (that is, characters
  4215. whose code is greater than 160 (SPC with the high bit on) will be
  4216. displayed as a single glyph.)
  4217. Automatically becomes buffer-local when set in any fashion.
  4218. This variable does not apply to characters whose display is specified
  4219. in the current display table (if there is one).
  4220.  
  4221. ------------------------------
  4222. default-directory
  4223.  
  4224. Name of default directory of current buffer.  Should end with slash.
  4225. Each buffer has its own value of this variable.
  4226.  
  4227. `inhibit-local-variables' has been replaced with `enable-local-variables',
  4228. with the reversed sense.
  4229.  
  4230. ------------------------------
  4231. executing-kbd-macro
  4232.  
  4233. Currently executing keyboard macro (a vector of events);
  4234. nil if none executing.
  4235.  
  4236. ------------------------------
  4237. executing-macro
  4238.  
  4239. Currently executing keyboard macro (a vector of events);
  4240. nil if none executing.
  4241.  
  4242. ------------------------------
  4243. inverse-video
  4244.  
  4245. The variable `inverse-video' is currently ignored; this will eventually be
  4246. a parameter of the `default' face on tty screens.  For X screens, simply set
  4247. the foreground and background colors appropriately.
  4248.  
  4249. ------------------------------
  4250. keyboard-translate-table
  4251.  
  4252. String used as translate table for keyboard input, or nil.
  4253. Each character is looked up in this string and the contents used instead.
  4254. If string is of length N, character codes N and up are untranslated.
  4255. This is the right thing to use only if you are on a dumb tty, as it cannot
  4256. handle input which cannot be represented as ASCII.  If you are running Emacs
  4257. under X, you should do the translations with the xmodmap program instead.
  4258.  
  4259. ------------------------------
  4260. last-command-char
  4261.  
  4262. If the value of last-command-event is a keyboard event, then
  4263. this is the nearest ASCII equivalent to it.  This the the value that
  4264. self-insert-command will put in the buffer.  Remember that there is
  4265. NOT a 1:1 mapping between keyboard events and ASCII characters: the set
  4266. of keyboard events is much larger, so writing code that examines this
  4267. variable to determine what key has been typed is bad practice, unless
  4268. you are certain that it will be one of a small set of characters.
  4269.  
  4270. ------------------------------
  4271. last-input-char
  4272.  
  4273. If the value of last-input-event is a keyboard event, then
  4274. this is the nearest ASCII equivalent to it.  Remember that there is
  4275. NOT a 1:1 mapping between keyboard events and ASCII characters: the set
  4276. of keyboard events is much larger, so writing code that examines this
  4277. variable to determine what key has been typed is bad practice, unless
  4278. you are certain that it will be one of a small set of characters.
  4279.  
  4280. ------------------------------
  4281. last-kbd-macro
  4282. Last kbd macro defined, as a vector of events; nil if none defined.
  4283.  
  4284. ------------------------------
  4285. lisp-indent-hook
  4286. The variable `lisp-indent-hook' has been renamed `lisp-indent-function'
  4287.  
  4288. ------------------------------
  4289. load-path
  4290. *List of directories to search for files to load.
  4291. Each element is a string (directory name) or nil (try default directory).
  4292.  
  4293. Note that the elements of this list *may not* begin with "~", so you must
  4294. call expand-file-name on them before adding them to this list.
  4295.  
  4296. Initialized based on EMACSLOADPATH environment variable, if any,
  4297. otherwise to default specified in by file paths.h when Emacs was built.
  4298. If there were no paths specified in paths.h, then Emacs chooses a default
  4299. value for this variable by looking around in the file-system near the
  4300. directory in which the Emacs executable resides.
  4301.  
  4302. ------------------------------
  4303. mail-aliases
  4304.  
  4305. Word-abbrev table of mail address aliases.
  4306. If this is nil, it means the aliases have not yet been initialized and
  4307. should be read from the .mailrc file.  (This is distinct from there being
  4308. no aliases, which is represented by this being a table with no entries.)
  4309.  
  4310. ------------------------------
  4311. mode-line-format
  4312.  
  4313. The `mode-line-format' and similar strings accept a new format directive:
  4314.  
  4315.   %S -- print name of selected screen (only meaningful under X Windows).
  4316.  
  4317. ------------------------------
  4318. mode-line-inverse-video
  4319.  
  4320. The variable `mode-line-inverse-video' is currently ignored; this will
  4321. eventually be a parameter of the `modeline' face on tty screens.  For X
  4322. screens, simply set the foreground and background colors appropriately.
  4323.  
  4324. ------------------------------
  4325. tags-file-name
  4326.  
  4327. *The name of the tags-table used by all buffers.
  4328. This is for backward compatibility, and is largely supplanted by the
  4329. variable tag-table-alist.
  4330.  
  4331. ------------------------------
  4332. temp-buffer-show-hook
  4333.  
  4334. The variable `temp-buffer-show-hook' has been renamed
  4335. `temp-buffer-show-function'.
  4336.  
  4337. ------------------------------
  4338. visible-bell
  4339.  
  4340. The `visible-bell' variable doesn't currently work; this will eventually 
  4341. be a screen parameter.
  4342.  
  4343. ------------------------------
  4344. write-file-hooks
  4345.  
  4346. List of functions to be called before writing out a buffer to a file.
  4347. If one of them returns non-nil, the file is considered already written
  4348. and the rest are not called.
  4349. These hooks are considered to pertain to the visited file.
  4350. So this list is cleared if you change the visited file name.
  4351. See also `write-contents-hooks'.
  4352.